Sequence of node()
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">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="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>
All the books we like: </xsl:text> <xsl:text>

 </xsl:text> <xsl:for-each select="$Dougs-favorites union $Sheris-favorites"> <xsl:sort select="."/> <xsl:value-of select="."/> <xsl:text>
 </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> Output: All the books we like: XML C++ Java Oracle