XML Tutorial/XSLT stylesheet/Comparison Operator

Материал из Web эксперт
Версия от 11:26, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

less than

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="ISO-8859-1"?> <america>

<source>
 <title>A</title>
 <url>http://www.wbex.ru/</url>
 <populations estimate="true" year="2002"/>
</source>
<nation>
 <name>Canada</name>
 <capital>Ottowa</capital>
 <population>32277942</population>
 <cc>dz</cc>
</nation>

</america>

File: Transform.xslt <?xml version="1.0" encoding="US-ASCII"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text" />
 <xsl:template match="america">
   <xsl:apply-templates select="nation" />
 </xsl:template>
 <xsl:template match="nation">
   <xsl:text> * </xsl:text>
   <xsl:value-of select="name" />
   <xsl:if test="population <= 10000000">
     <xsl:text> (<= to 10M)</xsl:text>
   </xsl:if>
   <xsl:text>
</xsl:text>
 </xsl:template>

</xsl:stylesheet> Output:

* Canada</source>
   
  

Use esapced entity to do the compare

   <source lang="xml">

File: Data.xml <?xml version="1.0" standalone="yes"?> <poem author="jm" year="1667">

 <verse>line 1</verse>
 <verse>line 2</verse>
 <verse>line 3</verse>
 <verse>line 4</verse>

</poem> File: Transform.xslt <?xml version="1.0" standalone="yes"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 version="1.0">
 <xsl:output method="text" />
 <xsl:template match="poem">
   <xsl:if test="count(verse) < 3">
     The poem has less than 3 verse child elements.
   </xsl:if>
 </xsl:template>

</xsl:stylesheet></source>


Using comparison operator

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <provinces>

 <province id="AB">
   <name>Alberta</name>
   <abbreviation>AB</abbreviation>
 </province>

</provinces> File: Transform.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text" />
 <xsl:template match="math">
   <xsl:apply-templates
     select="operand[(. < 50) and (. > 30)]" />
 </xsl:template>
 <xsl:template match="operand[(. < 50) and (. > 30)]">
   <xsl:value-of select="." />
   <xsl:text> + 25 = </xsl:text>
   <xsl:value-of select=". + 25" />
   <xsl:text>
</xsl:text>
   <xsl:value-of select="." />
   <xsl:text> * 25 = </xsl:text>
   <xsl:value-of select=". * 25" />
   <xsl:text>
</xsl:text>
 </xsl:template>

</xsl:stylesheet> Output:


   Alberta
   AB</source>