假设我有两个xslt A和B。在xslt A中,我们有一个import / include语句来使用B的某些模板。Java中是否有一种方法可以生成生成的xslt(与导入的模板合并)? ?有可能吗?
SAXON可以导出已编译的XSLT,但不幸的是,已编译的XSLT具有指向导入的XSLT的链接,而我们不希望这样做。任何输入表示赞赏。
尚未在此上探索XALAN。
最佳答案
为什么要为此使用Java而不是XSLT?
大部分工作很容易,可以通过几个模板规则来完成:
<xsl:mode on-no-match="shallow-copy"/>
<xsl:mode name="nested" on-no-match="shallow-copy"/>
<xsl:template match="xsl:stylesheet | xsl:transform" mode="nested">
<xsl:apply-templates mode="nested"/>
</xsl:template>
<xsl:template match="xsl:import | xsl:include" mode="#all">
<xsl:apply-templates select="document(@href)" mode="nested"/>
</xsl:template>
但是,如果使用了某些XSLT功能,则存在一些复杂的问题,这些困难或困难使这些困难变得不可能,例如:
导入优先级可能未正确转换
xsl:apply-imports
不起作用具有模块范围的
xsl:stylesheet
上的属性(例如exclude-result-prefixes
)将丢失。