XML/XSLT stylesheet/except — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
 
м (1 версия)
 
(нет различий)

Текущая версия на 11:26, 26 мая 2010

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>