我有一个 XSLT 文件,包括另外两个 xml 文件来生成 html 页面,如下所示
<xsl:include href="xsltcache://UtilityTemplates.xml" />
<xsl:include href="xsltcache://eCertSpecificTemplates.xml" />
我不知道如何向转换器添加多个 xsl 源(本例中为三个文件),
Source xslSource = new StreamSource(xslFile);
Transformer trasformToXml=tFactory.newTransformer(xslSource);
最佳答案
您在 xsl:include 指令中使用了一种非常特殊的 URI 形式,这些指令看起来好像是被设计为由自定义 URI 取消引用逻辑(可能是 OASIS 目录)处理的。
执行此操作的标准方法是在 xsl:include
中使用相对 URI。 (例如 <xsl:include href="UtilityTemplates.xsl"/>
,将所有三个文件放在同一目录中,然后确保主文件的基本 URI 已知(如果 xslFile
是 File
对象,则主文件的基本 URI 就是已知的)。
如果“xsltcache”URI 有一些特殊的魔力,那么您需要找出它是什么。但如果你不想改变来源,你可以设置 URIResolver
关于TransformerFactory
。 URIResolver
当 xsl:include
时将被调用遇到声明时,它可以执行任何操作将提供的 URI 转换为 Source
包含所包含模块的对象。
关于java - Java Transformer 如何使用多个 xslt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41865349/