gpt4 book ai didi

xml - XSLT 按名称对节点进行排序?

转载 作者:数据小太阳 更新时间:2023-10-29 01:40:09 25 4
gpt4 key购买 nike

我不确定 xsl:sort 指令是如何工作的。我需要按标签名称对元素进行排序(用于比较),但我似乎无法想出如何进行这项工作。我的第一个想法是修改恒等变换,只修改它以包含一个排序语句,但我不确定该怎么做。

    <xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()">
<!-- xsl:sort ? -->
</xsl:apply-templates>
</xsl:copy>
</xsl:template>

最佳答案

这个转换:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*">
<xsl:sort select="name()"/>
</xsl:apply-templates>

<xsl:apply-templates select="node()">
<xsl:sort select="name()"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

应用于此 XML 文档时:

<t b="x" c="y" a="t">
<c/>
<b/>
<a/>
</t>

产生想要的排序输出:

<t a="t" b="x" c="y">
<a></a>
<b></b>
<c></c>
</t>

请注意:

  1. 不仅元素而且属性都被排序(后者依赖于实现,但可以与 MSXML 一起工作)。

  2. 对差异使用排序的 XML 是不可靠的,因为将 XML 文档转换为排序的表示不是 1:1 映射。

关于xml - XSLT 按名称对节点进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091085/

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