gpt4 book ai didi

xslt - XPath 轴是否尊重 Xslt 排序?

转载 作者:行者123 更新时间:2023-12-03 15:36:11 28 4
gpt4 key购买 nike

如果我像这样调用 xslt 模板:

  <xsl:template match="hist:Steps">
<dgml:Links>
<xsl:apply-templates select="hist:Step">
<xsl:sort data-type="text" select="hist:End" order="ascending"/>
</xsl:apply-templates>
</dgml:Links>
</xsl:template>

请问 following-sibling下面模板中的轴询问文档顺序或排序顺序?
  <xsl:template match="hist:Step">
<xsl:if test="following-sibling::hist:Step">
<dgml:Link>
<xsl:attribute name="Source">
<xsl:value-of select="hist:Workstation"/>
</xsl:attribute>

<xsl:attribute name="Target">
<xsl:value-of select="following-sibling::hist:Step/hist:Workstation"/>
</xsl:attribute>

</dgml:Link>
</xsl:if>
</xsl:template>

最佳答案

XSLT 获取输入树并将其转换为结果树,您的路径表达式始终对输入树进行操作,因此您正在寻找的任何兄弟都可以在输入树中导航到。使用 XSLT 2.0(或使用 XSLT 1.0 和像 exsl:node-set http://www.exslt.org/exsl/index.html 这样的扩展函数),您可以创建带有临时树的变量,然后您可以在例如

<xsl:variable name="rtf1">
<xsl:for-each select="hist:Step">
<xsl:sort data-type="text" select="hist:End" order="ascending"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:variable>
<xsl:apply-templates select="exsl:node-set($rtf1)/hist:Step"/>

然后将处理已排序的 Step 元素的临时节点集。

使用 XSLT 2.0,您不需要 exsl:node-set 调用。

关于xslt - XPath 轴是否尊重 Xslt 排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205276/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com