文章詳情頁(yè)
測(cè)試模式 - XSL教程 - 5
瀏覽:157日期:2022-06-04 14:35:13
xslt支持的測(cè)試模式語(yǔ)句,用于條件判斷,主要有:<xsl:if> 和<xsl:choose>及其下的<xsl:when>和<xsl:otherwise>
還是在匹配模式中使用的用戶(hù)列表數(shù)據(jù)源。
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>
關(guān)于test 使用的運(yùn)算符:
= 或 $eq$ 相等
= 或 $ieq$ 相等(不區(qū)分大小寫(xiě))
!= 或 $ne$ 不等
$ine$ 不等(不區(qū)分大小寫(xiě))
< 或 $lt$ 小于
$ilt$ 小于(不區(qū)分大小寫(xiě))
<= 或 $le$ 小于等于
$ile$ 小于等于(不區(qū)分大小寫(xiě))
> 或 $gt$ 大于
$igt$ 大于(不區(qū)分大小寫(xiě))
>= 或 $ge$ 大于等于
$ige$ 大于等于(不區(qū)分大小寫(xiě))
$all$ 集合運(yùn)算符,如果集合中所有項(xiàng)目均滿(mǎn)足條件則返回"真"
$any$ 集合運(yùn)算符,如果集合中任意項(xiàng)目滿(mǎn)足條件則返回"真"
| 集合運(yùn)算符,返回兩個(gè)集合的聯(lián)合
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>
還是在匹配模式中使用的用戶(hù)列表數(shù)據(jù)源。
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>
關(guān)于test 使用的運(yùn)算符:
= 或 $eq$ 相等
= 或 $ieq$ 相等(不區(qū)分大小寫(xiě))
!= 或 $ne$ 不等
$ine$ 不等(不區(qū)分大小寫(xiě))
< 或 $lt$ 小于
$ilt$ 小于(不區(qū)分大小寫(xiě))
<= 或 $le$ 小于等于
$ile$ 小于等于(不區(qū)分大小寫(xiě))
> 或 $gt$ 大于
$igt$ 大于(不區(qū)分大小寫(xiě))
>= 或 $ge$ 大于等于
$ige$ 大于等于(不區(qū)分大小寫(xiě))
$all$ 集合運(yùn)算符,如果集合中所有項(xiàng)目均滿(mǎn)足條件則返回"真"
$any$ 集合運(yùn)算符,如果集合中任意項(xiàng)目滿(mǎn)足條件則返回"真"
| 集合運(yùn)算符,返回兩個(gè)集合的聯(lián)合
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>
標(biāo)簽:
XML/RSS
上一條:三十分鐘掌握STL-教程下一條:匹配模式 - XSL教程 - 4
相關(guān)文章:
1. java虛擬機(jī)詳述-第三章(二)2. Vue的v-model的幾種修飾符.lazy,.number和.trim的用法說(shuō)明3. keep-Alive搭配vue-router實(shí)現(xiàn)緩存頁(yè)面效果的示例代碼4. 解決react-connect中使用forwardRef遇到的問(wèn)題5. Spring Boot引入swagger-ui 后swagger-ui.html無(wú)法訪問(wèn)404的問(wèn)題6. PHP基礎(chǔ)之流程控制3——while/do-while7. 詳解vue-flickity的fullScreen功能實(shí)現(xiàn)8. vue v-for出來(lái)的列表,點(diǎn)擊某個(gè)li使得當(dāng)前被點(diǎn)擊的li字體變紅操作9. 快速解決Vue、element-ui的resetFields()方法重置表單無(wú)效的問(wèn)題10. 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過(guò)程
排行榜
