XML/XSLT stylesheet/reverse
Версия от 21:22, 25 мая 2010; (обсуждение)
subsequence and reverse
<source lang="xml">
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! " else " The first nodes aren""t the same! ""/> <xsl:value-of select="if (subsequence($A-List, 1, 1) is subsequence(reverse($B-List), 1, 1)) then " The first nodes are the same! " else " The first nodes aren""t the same! ""/> </xsl:template>
</xsl:stylesheet> Output:
The first nodes aren"t the same! The first nodes aren"t the same! </source>