Java Transformer如何使用多个xslt文件

时间:2017-01-26 03:12:40

标签: 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);

1 个答案:

答案 0 :(得分:1)

您在xsl:include指令中使用了一种非常特殊的URI形式,这些形式看起来好像是由自定义URI解引用逻辑(可能是OASIS目录)处理的。

执行此操作的标准方法是使用xsl:include中的相对URI(例如<xsl:include href="UtilityTemplates.xsl"/>)将所有三个文件放在同一目录中,然后确保主文件的基本URI是已知的(如果xslFileFile对象,它将是。)

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

相关问题