Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Subsequence and reverse

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <favorite-books>   <booklist>     <book isbn="1111111111"        favorite="f1">XSLT</book>     <book isbn="2222222222"        favorite="A">Java</book>     <book isbn="3333333333"        favorite="A">C++</book>     <book isbn="4444444444"        favorite="f1">SQL</book>     <book isbn="5555555555"        favorite="B">Oracle</book>     <book isbn="0375724443"        favorite="B">XML</book>   </booklist> </favorite-books> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="2.0"    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">      <xsl:output method="text"/>     <xsl:variable name="A-List" as="node()*">     <xsl:sequence        select="/favorite-books/booklist               /book[contains(@favorite, 'A')]"/>   </xsl:variable>   <xsl:variable name="B-List" as="node()*">     <xsl:sequence        select="/favorite-books/booklist               /book[contains(@favorite, 'B')]"/>   </xsl:variable>   <xsl:template match="/">     <xsl:value-of        select="if (subsequence($A-List, 1, 1) is                    subsequence($B-List, 1, 1))               then '    The first nodes are the same!&#xA;'               else '    The first nodes aren''t the same!&#xA;'"/>          <xsl:value-of        select="if (subsequence($A-List, 1, 1) is                   subsequence(reverse($B-List), 1, 1))               then '    The first nodes are the same!&#xA;'               else '    The first nodes aren''t the same!&#xA;'"/>   </xsl:template> </xsl:stylesheet> Output:     The first nodes aren't the same!     The first nodes aren't the same!