xslt支持的测试模式语句,用于条件判断,主要有:<xsl:if>和<xsl:choose>及其下的<xsl:when>和<xsl:otherwise>
还是在匹配模式中使用的用户列表数据源。
1:使用xsl:if
<?xmlversion="1.0"encoding="GB2312"?>
<xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:templatematch="/">
<html>
<body>
<tableborder="1">
<trbgcolor="#9acd32">
<th>Name</th>
<th>ID</th>
</tr>
<xsl:for-eachselect="Users/User">
<xsl:sortdata-type="number"select="@ID"order="descending"/>
<xsl:iftest="IDmod2=1">
<tr>
<td><xsl:value-ofselect="Name"/></td>
<td><xsl:value-ofselect="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:whentest="ID>2">
<tdbgcolor="#ff00ff"><xsl:value-ofselect="Name"/></td>
<tdbgcolor="#ff00ff"><xsl:value-ofselect="ID"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-ofselect="Name"/></td>
<td><xsl:value-ofselect="ID"/></td>
</xsl:otherwise>
</xsl:choose>
JavaScript输出
<html>
<body>
<scripttype="text/javascript">
//LoadXML
varxml=newActiveXObject("Microsoft.XMLDOM")
xml.async=false
xml.load("UserList3.xml")
//LoadXSL
varxsl=newActiveXObject("Microsoft.XMLDOM")
xsl.async=false
xsl.load("UserList_template.xsl")//Transform
document.write(xml.transformNode(xsl))</script></body>
</html>