• 分类

  • 重置

测试模式 – 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>