第四节 XSL控制指令.doc
文本预览下载声明
第四节 XSL控制指令
与CSS相比,XSL的功能更为强大,这是由于XSL能够对XML文档中的数据进行更为复杂的处理,例如对数据进行排序、过滤和计算等。
XSL用来处理数据的控制指令,如下所示:
单条件判断指令
多条件判断指令
循环处理指令
排序指令
1. 单条件判断指令
在XSL中,可以使用条件判断指令来决定是否显示指定的元素或属性,条件判断指令分为:
单条件判断指令:xsl:if
多条件判断指令:xsl:choose
单条件判断指定的语法格式如下:
xsl:if test=codition
.
. 语句块
.
/xsl:if
其中:
test属性指定判断条件,如果判断条件满足,则执行if语句块中的内容;如果条件不满足,则忽略if语句块中的内容。
判断条件codition分为如下四种情况:
以元素值为条件
以属性值为条件
在判断条件中可以使用各种比较运算符和逻辑运算符,如下表所示:
运算符 含 义 示 例 = 等于 名称[. = ’牙膏’]
价格[. = 20] != 不等于 名称[. != ’牙膏’]
价格[. != 20] lt; 小于 价格[. lt; 20]
数量[. lt; 100] gt; 大于 价格[. gt; 20]
数量[. gt; 100] lt;= 小于等于 价格[. lt;= 20]
数量[. lt;= 100] gt;= 大于等于 价格[. gt;= 20]
数量[. gt;= 100] and 逻辑与 价格[. gt; 20 and . lt; 40]
数量[. gt;= 100 and . lt;= 200] or 逻辑或 名称[. = ’牙膏’ or . = ’牙刷’]
价格[. lt; 20 or . gt; 40] not 逻辑非 名称[not ( . = ’牙膏’ )]
(1) 以元素值为条件
示例1:以描述产品信息的XML文档为例,仅显示名称为“牙膏”的产品信息,XSL文件如下所示:
?xml version=1.0 encoding=GB2312?
xsl:stylesheet version=1.0 xmlns:xsl=/1999/XSL/Transform
xsl:template match=/
xsl:apply-templates select=产品信息/
/xsl:template
xsl:template match=产品信息
html
body
table border=1px align=center width=400px cellspacing=0px cellpadding=5px
tr align=center
th产品编号/th
th产品名称/th
th产品价格/th
th产品数量/th
/tr
xsl:apply-templates select=产品/
/table
/body
/html
/xsl:template
xsl:template match=产品
xsl:if test=名称[. = 牙膏]
tr align=center
tdxsl:value-of select=@产品编号//td
tdxsl:value-of select=名称//td
tdxsl:value-of select=价格//td
tdxsl:value-of select=数量//td
/tr
/xsl:if
/xsl:template
/xsl:stylesheet
示例2:以描述产品信息的XML文档为例,显示“价格小于等于4”的产品信息,XSL文件如下所示:
?xml version=1.0 encoding=GB2312?
xsl:stylesheet version=1.0 xmlns:xsl=/1999/XSL/Transform
xsl:template match=/
xsl:apply-templates select=产品信息/
/xsl:template
xsl:template match=产品信息
html
body
table border=1px align=center width=400px cellspacing=0px cellpadding=5px
tr align=center
th产品编号/th
th产品名称/th
th产品价格/th
th产品数量/th
/tr
显示全部