使用<xsl:sort>对复杂的XML结构进行排序</xsl:sort>

时间:2014-09-29 19:21:16

标签: xml xslt

我正在尝试使用基于XML树中任何较低级别的特定元素对节点进行排序。

假设我有以下XML结构:

<Concepts>
<Concept>
    <Type>C</Type>
</Concept>

<Concept>
    <Type>A</Type>
</Concept>

<Concept>
    <OR>
        <Type>B</Type>
    </OR>
    <OR>
        <Type>B</Type>
    </OR>
</Concept>
</Concepts>

请注意,<Type>中的任何<Concept>都具有相同的值,与<Type>B</Type>的情况相同。

我尝试使用以下XSLT1.0代码,但无济于事:

<xsl:template match="/">
    <ul>
        <xsl:for-each select="Concepts/Concept">
            <xsl:sort select="//Type"/>
            <li><xsl:value-of select="."/></li>
        </xsl:for-each>
    </ul>
</xsl:template>

结果输出为:

  • C
  • A
  • B B

我希望:

  • A
  • B B
  • C

1 个答案:

答案 0 :(得分:0)

使用.//Type获得相对于概念的子树的路径并搜索。