大佬教程收集整理的这篇文章主要介绍了XSLT 复制和排序多个节点,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想对以下 XML 进行排序:
元素的值
XML
<test>
<person>
<name>Tom</name>
<codes>
<code>BS</code>
<code>BA</code>
<code>BM</code>
</codes>
</person>
<person>
<name>Dick</name>
</person>
<person>
<name>Harry</name>
<codes>
<code>AB</code>
<code>FG</code>
<code>C</code>
</codes>
</person>
</test>
XSLT
使用以下 XSLT,我能够实现结果 1,但结果 2 无法实现:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/transform">
<xsl:output method="xml" enCoding="utf-8" indent="yes" version="1.0" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates SELEct="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="test">
<xsl:copy>
<xsl:apply-templates SELEct="@*" />
<xsl:apply-templates SELEct="person">
<xsl:sort SELEct="name" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
电流输出
当前输出为
<test>
<person>
<name>Dick</name>
</person>
<person>
<name>Harry</name>
<codes>
<code>AB</code>
<code>FG</code>
<code>C</code>
</codes>
</person>
<person>
<name>Tom</name>
<codes>
<code>BS</code>
<code>BA</code>
<code>BM</code>
</codes>
</person>
</test>
期望输出
这是朝着正确方向迈出的一步,但我需要:
<test>
<person>
<name>Dick</name>
</person>
<person>
<name>Harry</name>
<codes>
<code>AB</code>
<code>C</code>
<code>FG</code>
</codes>
</person>
<person>
<name>Tom</name>
<codes>
<code>BA</code>
<code>BM</code>
<code>BS</code>
</codes>
</person>
</test>
我尝试了几种方法,但都不起作用。
怎么样:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:Strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates SELEct="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/test">
<xsl:copy>
<xsl:apply-templates SELEct="person">
<xsl:sort SELEct="name" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="codes">
<xsl:copy>
<xsl:apply-templates SELEct="code">
<xsl:sort/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
以上是大佬教程为你收集整理的XSLT 复制和排序多个节点全部内容,希望文章能够帮你解决XSLT 复制和排序多个节点所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。