Сортировать порядок записей по значению идентификатора - PullRequest
0 голосов
/ 18 марта 2020

Мне нужна краткая справка по этому XSLT, у меня есть XSLT, который был передан правильно, но мне нужно передать xml в соответствии с порядком сортировки, основанным на multiRef id = "id1", упомянутом в 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 =

с наилучшими пожеланиями, Сатин sh

1 Ответ

0 голосов
/ 18 марта 2020

Сортировка производится с xsl:sort:

<xsl:for-each select="//soap:Body/multiRef">
   <xsl:sort select="@id"/>
   ..
</xsl:for-each>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...