XML/XSLT stylesheet/except
except operator
<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="Doug">Java</book> <book isbn="3333333333" favorite="Doug">C++</book> <book isbn="4444444444" favorite="f1">SQL</book> <book isbn="5555555555" favorite="Sheri">Oracle</book> <book isbn="0375724443" favorite="Sheri">Ava"s Man</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="Dougs-favorites" as="node()*"> <xsl:sequence select="/favorite-books/booklist/book[contains(@favorite, "Doug")]"/> </xsl:variable> <xsl:variable name="Sheris-favorites" as="node()*"> <xsl:sequence select="/favorite-books/booklist/book[contains(@favorite, "Sheri")]"/> </xsl:variable> <xsl:template match="/"> <xsl:text> Books Doug likes but Sheri doesn"t:</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select="$Dougs-favorites except $Sheris-favorites"> <xsl:sort select="."/> <xsl:value-of select="."/> <xsl:text> </xsl:text> </xsl:for-each> </xsl:template>
</xsl:stylesheet> Output:
Books Doug likes but Sheri doesn"t:
C++ Java </source>