2016-11-23 9 views
0

InfoNo属性に基づいてxmlをまずソートするには、テンプレートを使用してxslを使用してSeqNo属性をソートする方法。私は、XSLでみましたが、私は1つの属性のみで行うことができます2つの属性に基づいて並べ替え

入力のxml:

 <Customer> 
      <Info InfoNo="2" SeqNo="1" > 
       <LastName>Wilson</LastName> 
       <GivenName>Kelley</GivenName> 
      </Info> 
      <Info InfoNo="4" SeqNo="1" > 
       <LastName>Graham</LastName> 
       <GivenName>Tom</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="3" > 
       <LastName>Fisher</LastName> 
       <GivenName>Elaine</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="2" "> 
       <LastName>Gary</LastName> 
       <GivenName>Jerry</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="1" > 
       <LastName>Timothy</LastName> 
       <GivenName>Kathy</GivenName> 
      </Info> 
      <Info InfoNo="3" SeqNo="1" > 
       <LastName>Tim</LastName> 
       <GivenName>Kerry</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="4" > 
       <LastName>Rob</LastName> 
       <GivenName>Tony</GivenName> 
      </Info> 
     </Customer> 

予想される出力XML:

<Customer> 
      <Info InfoNo="1" SeqNo="1" > 
       <LastName>Timothy</LastName> 
       <GivenName>Kathy</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="2" "> 
       <LastName>Gary</LastName> 
       <GivenName>Jerry</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="3" > 
       <LastName>Fisher</LastName> 
       <GivenName>Elaine</GivenName> 
      </Info> 
      <Info InfoNo="1" SeqNo="4" > 
       <LastName>Rob</LastName> 
       <GivenName>Tony</GivenName> 
      </Info>     
      <Info InfoNo="2" SeqNo="1" > 
       <LastName>Wilson</LastName> 
       <GivenName>Kelley</GivenName> 
      </Info> 
      <Info InfoNo="3" SeqNo="1" > 
       <LastName>Tim</LastName> 
       <GivenName>Kerry</GivenName> 
      </Info>     
      <Info InfoNo="4" SeqNo="1" > 
       <LastName>Graham</LastName> 
       <GivenName>Tom</GivenName> 
      </Info> 
     </Customer>  

がxslt1.0

+0

「xslで試してみましたが、1つの属性でしかできません」:なぜxsl:sort?を2つ書くことができませんか? –

答えて

0

でそれを必要とする2本使用<xsl:sort>これについては:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/Customer"> 
    <Customer> 
    <xsl:for-each select="Info"> 
     <xsl:sort select="@InfoNo" data-type="number" /> 
     <xsl:sort select="@SeqNo" data-type="number" /> 
     <xsl:copy-of select="." /> 
    </xsl:for-each> 
    </Customer> 
</xsl:template> 

</xsl:stylesheet> 
関連する問題