XML/XSLT stylesheet/intersect — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:26, 26 мая 2010
intersect 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">Java</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 we both like:</xsl:text> <xsl:text> </xsl:text> <xsl:for-each select="$Dougs-favorites intersect $Sheris-favorites"> <xsl:sort select="."/> <xsl:value-of select="."/> <xsl:text> </xsl:text> </xsl:for-each> </xsl:template>
</xsl:stylesheet> Output:
Books we both like:
</source>