测试模式 - XSL教程 - 5
程序员文章站
2022-06-23 21:44:03
xslt支持的测试模式语句,用于条件判断,主要有: 和及其下的和&...
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>
还是在匹配模式中使用的用户列表数据源。
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>