使用Java将XSLT与import / include语句合并

时间:2019-11-28 14:41:50

标签: java xslt saxon xalan

假设我有两个xslt A和B。在xslt A中,我们有一个import / include语句来使用B的一些模板。在Java中,有没有一种方法可以生成最终的xslt(与导入的xslt合并模板)??有可能吗?

SAXON可以导出已编译的XSLT,但是不幸的是,已编译的XSLT具有指向导入的XSLT的链接,而我们不希望这样做。任何输入表示赞赏。

在这一方面还没有探索XALAN。

1 个答案:

答案 0 :(得分:0)

为什么要为此使用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)的
  • 属性将丢失。

相关问题