Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Compares sorted and unsorted xsl

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data>     <AAA>       <BBB>         <CCC>A</CCC>       </BBB>       <BBB/>     </AAA>     <AAA>       <BBB/>       <BBB>         <CCC>B</CCC>         <CCC>C</CCC>         <CCC>D</CCC>         <CCC>E</CCC>       </BBB>     </AAA> </data> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet       version="1.0"       xmlns:xsl="http://www.w3.org/1999/XSL/Transform">     <xsl:template match="/">       <TABLE border="1">         <TR>           <td>Position</TH>           <td>Last</TH>           <td>Name</TH>         </TR>         <xsl:for-each select="//AAA[last()]//CCC">           <TR>             <TD>               <xsl:value-of select="position()"/>             </TD>             <TD>               <xsl:value-of select="last()"/>             </TD>             <TD>               <xsl:value-of select="text()"/>             </TD>           </TR>         </xsl:for-each>       </TABLE>       <TABLE border="1">         <TR>           <td>Position</TH>           <td>Last</TH>           <td>Name</TH>         </TR>         <xsl:for-each select="//AAA[last()]//CCC">           <xsl:sort order="ascending" select="text()"/>           <TR>             <TD>               <xsl:value-of select="position()"/>             </TD>             <TD>               <xsl:value-of select="last()"/>             </TD>             <TD>               <xsl:value-of select="text()"/>             </TD>           </TR>         </xsl:for-each>       </TABLE>     </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><TABLE border="1"><TR><td>Position</TH><td>Last</TH><td>Name</TH></TR><TR><TD>1</TD><TD>4</TD><TD>B</TD></TR><TR><TD>2</TD><TD>4</TD><TD>C</TD></TR><TR><TD>3</TD><TD>4</TD><TD>D</TD></TR><TR><TD>4</TD><TD>4</TD><TD>E</TD></TR></TABLE><TABLE border="1"><TR><td>Position</TH><td>Last</TH><td>Name</TH></TR><TR><TD>1</TD><TD>4</TD><TD>E</TD></TR><TR><TD>2</TD><TD>4</TD><TD>C</TD></TR><TR><TD>3</TD><TD>4</TD><TD>B</TD></TR><TR><TD>4</TD><TD>4</TD><TD>D</TD></TR></TABLE>