我有一个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);
答案 0 :(得分:1)
您在xsl:include指令中使用了一种非常特殊的URI形式,这些形式看起来好像是由自定义URI解引用逻辑(可能是OASIS目录)处理的。
执行此操作的标准方法是使用xsl:include
中的相对URI(例如<xsl:include href="UtilityTemplates.xsl"/>
)将所有三个文件放在同一目录中,然后确保主文件的基本URI是已知的(如果xslFile
是File
对象,它将是。)
如果“xsltcache”URI有一些特殊的魔力,那么你需要找出它是什么。但是,如果您不想更改来源,可以在URIResolver
上设置TransformerFactory
。遇到URIResolver
声明时,将调用xsl:include
,它可以执行任何操作,将提供的URI转换为包含所包含模块的Source
对象。