java - Java Transformer 如何使用多个 xslt 文件

标签 java xml xslt

我有一个 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 已知(如果 xslFileFile 对象,则主文件的基本 URI 就是已知的)。

如果“xsltcache”URI 有一些特殊的魔力,那么您需要找出它是什么。但如果你不想改变来源,你可以设置 URIResolver关于TransformerFactoryURIResolverxsl:include 时将被调用遇到声明时,它可以执行任何操作将提供的 URI 转换为 Source包含所包含模块的对象。

关于java - Java Transformer 如何使用多个 xslt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41865349/

相关文章:

xml - 在 XQuery 中,如何根据给定谓词递归过滤后代?

JavaFX 和 Swing 性能问题

java - 对 arraylist java 中的重复值进行分组和计数

java - 错误: not enough space for card marking array

java - 如何使用相同的标签名称解码 java 中的嵌套子元素?

python - 从字符串创建对象类型

Java JSSE SSLEngine 无法恢复 SSL session

java - 使用 jaxb 解析错误的 xml

xslt - 如何使用 xQuery

javascript - 获取从 xml 到 xslt 的输入最小值