测试模式 - XSL教程 - 5

  xslt支持的测试模式语句,用于条件判断,主要有:<xsl:if> 和<xsl:choose>及其下的<xsl:when>和<xsl:otherwise>

  还是在匹配模式中使用的用户列表数据源。

  1:使用xsl:if

  <?xml version="1.0" encoding="GB2312"?>

  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">

  <html>

  <body>

  <table border="1">

  <tr bgcolor="#9acd32">

  <th>Name</th>

  <th>ID</th>

  </tr>

  <xsl:for-each select="Users/User">

  <xsl:sort  data-type="number" select="@ID" order="descending" />

  <xsl:if test="ID mod 2=1">

  <tr>

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

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

  </tr>

  </xsl:if>

  </xsl:for-each>

  </table>

  </body>

  </html>

  </xsl:template></xsl:stylesheet>

  关于test 使用的运算符:

  = 或 $eq$  相等

  = 或 $ieq$  相等(不区分大小写)

  != 或 $ne$  不等

  $ine$  不等(不区分大小写)

  < 或 $lt$   小于

  $ilt$  小于(不区分大小写)

  <= 或 $le$  小于等于

  $ile$  小于等于(不区分大小写)

  > 或 $gt$   大于

  $igt$  大于(不区分大小写)

  >= 或 $ge$  大于等于

  $ige$  大于等于(不区分大小写)

  $all$   集合运算符,如果集合中所有项目均满足条件则返回"真"

  $any$  集合运算符,如果集合中任意项目满足条件则返回"真"

  |  集合运算符,返回两个集合的联合

  2:使用xsl:choose

  <xsl:choose>

  <xsl:when test="ID > 2">

  <td bgcolor="#ff00ff"><xsl:value-of select="Name"/></td>

  <td bgcolor="#ff00ff"><xsl:value-of select="ID"/></td>

  </xsl:when>

  <xsl:otherwise>

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

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

  </xsl:otherwise>

  </xsl:choose>

  JavaScript输出

  <html>

  <body>

  <script type="text/javascript">

  // Load XML

  var xml = new ActiveXObject("Microsoft.XMLDOM")

  xml.async = false

  xml.load("UserList3.xml")

  // Load XSL

  var xsl = new ActiveXObject("Microsoft.XMLDOM")

  xsl.async = false

  xsl.load("UserList_template.xsl")// Transform

  document.write(xml.transformNode(xsl))</script></body>

  </html>