根据 ID 值对记录的顺序进行排序

Sort the order of records based upon ID value

我需要有关此 XSLT 的简短帮助,我有一个正确传输的 XSLT,但我需要根据 multiRef id="id1" 中提到的排序顺序明智地传输 xml XML

?xml version="1.0" encoding="UTF-8" ?> 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
    <soapenv:Body>
    <ns1:getGenResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    <ns1:getGenReturn xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[2]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    </ns1:getGenReturn>
    </ns1:getGenResponse>
    <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Gen" xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/>
        <name xsi:type="xsd:string">ULM</name> 
         <mail xsi:type="xsd:string">ulm@gmail.com</mail> 
    </multiRef>
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:Gen" " xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
         <name xsi:type="xsd:string">ABC</name> 
         <mail xsi:type="xsd:string">abc@gmail.com</mail> 
    </multiRef>

    </soapenv:Body>
    </soapenv:Envelope>

我有 XSLT,我使用它并且工作正常,但是这个 XSLT 不是基于 multiRef id 值排序。

<xsl:template match="/">
  <getGenResponse>
    <xsl:for-each select="//soap:Body/multiRef">
      <getGenReturn>
        <name><xsl:value-of select="name"/></name>
        <mail><xsl:value-of select="mail"/></mail>
      </getGenReturn>
    </xsl:for-each>
  </getGenResponse>
</xsl:template>

你能帮我如何根据 multiRef id=

对记录的顺序进行排序吗

谨致问候, 萨提什

排序是用 xsl:sort:

<xsl:for-each select="//soap:Body/multiRef">
   <xsl:sort select="@id"/>
   ..
</xsl:for-each>