假设我有两个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)将丢失。

08-18 18:43
查看更多