如何使用xslt按值对xml元素进行排序

时间:2016-01-28 15:50:14

标签: xml sorting xslt xslt-1.0 xslt-2.0

我下面有一个xml。

<parent>
<child1>False</child1>
<child2>True</child2>
<child3>False</child3>
<child4>True</child4>
</parent>

<parent>
<child4>False</child1>
<child5>True</child2>
<child3>False</child3>
<child4>False</child4>
</parent>

按True排序后,xml和最终的xml看起来像

<parent>
<child4>True</child4>
<child2>True</child2>
<child1>False</child1>
<child3>False</child3>
</parent>
<parent>
<child5>True</child2>
<child4>False</child1>
<child3>False</child3>
<child4>False</child4>
</parent>

可以用xslt完成。我需要xslt逻辑来将xml元素按True排序。

1 个答案:

答案 0 :(得分:2)

xsl:sort正是您正在寻找的。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output indent="yes" />

<xsl:template match="parent">
  <parent>
    <xsl:for-each select="*">
      <xsl:sort select="." order="descending"/>
      <xsl:copy-of select='.'/>
    </xsl:for-each>
  </parent>
</xsl:template>

</xsl:stylesheet>