【问题标题】:How to run the <xsl:for-each-group select="*" group-adjacent="boolean(self::table)"></xsl:for-each-group> of xslt2.0 by using xalan如何使用xalan运行xslt2.0的<xsl:for-each-group select="*" group-adjacent="boolean(self::table)"></xsl:for-each-group>
【发布时间】:2019-07-23 01:45:16
【问题描述】:

其实我有两种方法: 一个是:document-location() 其他的是:

<xsl:for-each-group select="*" group-adjacent="boolean(self::table)">

第一种方法支持 xalan 但不支持 saxon,第二种方法支持 saxon 但不支持 xalan。

为此,我为两种方法创建了两个文件。但我不想创建两个不同的文件。有没有和 xalan 一样的方法?

【问题讨论】:

  • 不清楚你的问题是什么。如果要使用 Xalan,请将 xsl:for-each-group 替换为 Muenchian 分组方法 - 参见:jenitennison.com/xslt/grouping/muenchian.html
  • 现在更不清楚了。
  • 我需要一个模板来替换 xalan 中的
  • 如果我想使用撒克逊语运行 document-location() 方法。所以我需要在这个函数中修改什么,以便我可以在 saxon 上成功运行它。

标签: xslt saxon xalan


【解决方案1】:

&lt;xsl:for-each-group&gt; 结构是在 XSLT 2.0 中引入的,Xalan 仅支持 XSLT 1.0。如果您需要在 XSLT 1.0 中进行分组,则必须使用 Muenchian 分组方法。如果您的样式表中有一些东西阻止您从 Xalan 迁移到 Saxon 以利用 XSLT 2.0(和 3.0),那么请告诉我们确切的问题是什么,我们可能会帮助您进行迁移。 (最好在一个新问题中完成。)

【讨论】:

    【解决方案2】:

    我想使用 saxon 来运行 document-location() 方法。

    我找不到任何有关此方法实际作用的文档。

    如果 - 如建议的 here - 它返回正在处理的 XML 文件的路径,您可以使用 XPath 2.0 base-uri()document-uri() 函数来做同样的事情。

    【讨论】:

    • 你的意思是说saxon中不存在检索文件名的方法。
    • 不,我说有两种方法可以得到它。
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2012-07-20
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多