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:sort data-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>