XML Tutorial/XSLT stylesheet/Comparison Operator
Версия от 18:22, 25 мая 2010; (обсуждение)
less than
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"/>
<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
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>
Using comparison operator
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