XML Tutorial/XSLT stylesheet/Comparison Operator — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:26, 26 мая 2010
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>