Xml 如何在xslt中对值进行排序?

Xml 如何在xslt中对值进行排序?,xml,xslt,xslt-1.0,xslt-2.0,Xml,Xslt,Xslt 1.0,Xslt 2.0,您好,您能告诉我如何在xslt中对值进行排序吗 这是我的密码 XML <livescore gn="192.168.24.87"> <calendar potime="715"> <test matchstatus="Match Ended" name="ccc" matchnumber="Match 1"/> <test matchstatus="adsds" name="bb" m

您好,您能告诉我如何在xslt中对值进行排序吗

这是我的密码

XML

    <livescore gn="192.168.24.87">
        <calendar potime="715">
          <test matchstatus="Match Ended" name="ccc" matchnumber="Match 1"/>
            <test matchstatus="adsds" name="bb" matchnumber="Match 2"/>
            <test matchstatus="Match Ended" name="aaa" matchnumber="Match 4"/>
            <test matchstatus="Match Ended" name="bbb" matchnumber="Match 3"/>
        </calendar>
    </livescore>

代码

 <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
        <xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />

        <xsl:template match="/">
          <hmtl>
            <head>
              <title>New Version!</title>
            </head>
            <xsl:apply-templates select="livescore/calendar/test[@matchstatus ='Match Ended']"/>
          </hmtl>
        </xsl:template>
    <xsl:template match="livescore/calendar/test[@matchstatus ='Match Ended']" >

    <h1><xsl:value-of select="@name"/></h1>
        </xsl:template>
    </xsl:transform>

新版本!
输出

<h1>ccc</h1>
   <h1>aaa</h1>
   <h1>bbb</h1>
<h1>aaa</h1>
       <h1>bbb</h1>
       <h1>ccc</h1>
ccc
aaa
bbb
预期产出

<h1>ccc</h1>
   <h1>aaa</h1>
   <h1>bbb</h1>
<h1>aaa</h1>
       <h1>bbb</h1>
       <h1>ccc</h1>
aaa
bbb
ccc
我试过这句话

<xsl:sort select="normalize-space(substring-after(matchnumber,' '))" data-type="number" order="descending"/>

但不工作


<xsl:sort select="//@matchnumber"/>

AFAICT,您只需将缺少的
@
添加到您的尝试中,并使其:

<xsl:sort select="normalize-space(substring-after(@matchnumber,' '))" data-type="number" order="descending"/>


演示:

AFAICT,您只需将缺少的
@
添加到您的尝试中,并使其:

<xsl:sort select="normalize-space(substring-after(@matchnumber,' '))" data-type="number" order="descending"/>


演示:

使用
matchnumber
我需要排序
matchnumber
我需要排序请删除此答案请删除此答案