唐伯虎 发表于 2021-6-29 10:40:17

测试模式 - 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:sortdata-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>
页: [1]
查看完整版本: 测试模式 - XSL教程 - 5