XSL:当有多个具有相似标记名称的元素时,按属性值排序

时间:2012-04-24 04:14:19

标签: xslt sorting

这是XML文件的示例:

<Nodes version="1">
<Node name="root">
    <Node name="message 3">
        <Prp name="date" type="D" value="41019.2289042593"/>
        <Prp name="priority" type="I" value="300"/>
        <Prp name="child index" type="I" value="-1"/>
    </Node>
    <Node name="message 2">
        <Prp name="date" type="D" value="41019.2288970833"/>
        <Prp name="priority" type="I" value="300"/>
        <Prp name="child index" type="I" value="-1"/>
    </Node>
    <Node name="message 1">
        <Prp name="date" type="D" value="41019.2288965625"/>
        <Prp name="priority" type="I" value="300"/>
        <Prp name="child index" type="I" value="-1"/>
    </Node>
   </Node>
</Nodes>

我必须根据日期对“messagex”节点进行排序(即Prp name中的“value”属性=“date”type =“D”value =“41019.2288970833”/&gt; field)

我无法找到解决方案,因为标签具有相同的名称,属性也是如此。你能指导我这样做吗?

1 个答案:

答案 0 :(得分:0)

<xsl:apply-templates select="/Nodes/Node[@name='root']/Node">
    <xsl:sort select="Prp[@name='date' and @type='D']/@value"/>
</xsl:apply-templates>