XSL简明教程(7)XSL 的控制语句

  原著:Jan Egil Refsnes 翻译:阿捷

  

  七. XSL 的控制语句

  

  1.条件语句if...then

  XSL同样还有条件语句(呵呵~~好厉害吧,象程序语言一样)。具体的语法是增加一个xsl:if元素,类似这样

  <xsl:if match=".[ARTIST='Bob Dylan']">

  ... some output ...

  </xsl:if>

  

  上面的例子改写成为:

  <?xml version='1.0'?>

  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

  <xsl:template match="/">

  <html>

  <body>

  <table border="2" bgcolor="yellow">

  <tr>

  <th>Title</th>

  <th>Artist</th>

  </tr>

  <xsl:for-each select="CATALOG/CD">

  <xsl:if match=".[ARTIST='Bob Dylan']">

  <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>

  

  2. XSL 的Choose

  choose的用途是出现多个条件,给出不同显示结果。具体的语法是增加一组xsl:choose,xsl:when,xsl:otherwise元素:

  

  <xsl:choose>

  <xsl:when match=".[ARTIST='Bob Dylan']">

  ... some code ...

  </xsl:when>

  <xsl:otherwise>

  ... some code ....

  </xsl:otherwise>

  </xsl:choose>

  

  上面的例子改写成为:

  <?xml version='1.0'?>

  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

  <xsl:template match="/">

  <html>

  <body>

  <table border="2" bgcolor="yellow">

  <tr>

  <th>Title</th>

  <th>Artist</th>

  </tr>

  <xsl:for-each select="CATALOG/CD">

  <tr>

  <td><xsl:value-of select="TITLE"/></td>

  <xsl:choose>

  <xsl:when match=".[ARTIST='Bob Dylan']">

  <td bgcolor="#ff0000"><xsl:value-of select="ARTIST"/></td>

  </xsl:when>

  <xsl:otherwise>

  <td><xsl:value-of select="ARTIST"/></td>

  </xsl:otherwise>

  </xsl:choose>

  </tr>

  </xsl:for-each>

  </table>

  </body>

  </html>

  </xsl:template>

  </xsl:stylesheet>