XSLT½Ì³Ì

<xsl:if>
2007-3-30

<xsl:sort> <xsl:choose>

The <xsl:if> element is used to put a conditional test against the content of the XML file.
<xsl:if>ÔªËØµÄ×÷ÓÃÊÇ£º¶ÔXMLÎļþµÄÄÚÈÝÉèÖÃÒ»¸öÌõ¼þÓï¾ä¡£


The <xsl:if> Element
<xsl:if>ÔªËØ

To put a conditional if test against the content of the XML file, add an <xsl:if> element to the XSL document.
Èç¹ûÄãÒª¶ÔXMLÎļþµÄÄÚÈÝÉèÖÃÒ»¸öÌõ¼þÓï¾ä£¬ÄÇÐèÒªÏòXSLÎļþÖÐÌí¼ÓÒ»¸ö<xsl:if>ÔªËØ¡£

Syntax
Óï·¨

<xsl:if test="expression">

...
...some output if the expression is true...
...
</xsl:if>


Where to Put the <xsl:if> Element
<xsl:if>ÔªËØÓ¦¸Ã·ÅÔÚÄÄ

To add a conditional test, add the <xsl:if> element inside the <xsl:for-each> element in the XSL file:
ÒªÌí¼ÓÒ»¸öÌõ¼þÓï¾ä£¬ÄDZØÐëÏÈÔÚXSLÎļþÀïµÄ<xsl:for-each>ÀïÌí¼ÓÒ»¸ö<xsl:if>ÔªËØ¡£

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>

<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>

</tr>
<xsl:for-each select="catalog/cd">
<xsl:if test="price > 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Note: The value of the required test attribute contains the expression to be evaluated.
×¢Òâ: ËùÒªÇóµÄÓï¾ä£¨test£©ÊôÐÔÖµ°üÀ¨ÁËÒªÌõ¼þ±í´ïʽ¡£

The code above will only output the title and artist elements of the CDs that has a price that is higher than 10.
ÉÏÃæµÄ´úÂë½ö½ö»áÊä³öÄÇЩ¼Û¸ñ¸ßÓÚ10µÄCDµÄ±êÌâºÍÒÕÊõ¼Ò¡£

The result of the transformation above will look like this:
ÉÏÃæµÄת»»½á¹ûÈçÏ£º

My CD Collection
ÎÒµÄCD¼¯

Title Artist
Empire Burlesque Bob Dylan
Still got the blues Gary Moore
One night only Bee Gees
Romanza Andrea Bocelli
Black Angel Savage Rose
1999 Grammy Nominees Many

View the XML file, View the XSL file, and View the result
XMLÎļþ, XSLÎļþ, ÒÔ¼° ½á¹û

 

<xsl:sort> <xsl:choose>