XML 知识量:7 - 28 - 99
除了访问节点,XSL还可以控制节点的输出方式,例如:加入条件判断、排序等功能。
输出中单条件判断通过<xsl:if>元素来实现,目的是对XML中的数据进行过滤,其语法如下:
<xsl:if test="测试条件"> ...... </xsl:if>
其中:
<xsl:if>是单条件判断的开始标记,</xsl:if>是结束标记。
test属性用于指定测试条件。满足条件时将继续转换开始标记后的内容,不满足条件时将忽略后面的内容。
输出中多条件判断通过使用<xsl:choose>和它的两个子元素<xsl:when>和<xsl:otherwise>来实现,其语法如下:
<xsl:choose> <xsl:when test="测试条件1"> ...... </xsl:when> <xsl:when test="测试条件2"> ...... </xsl:when> ...... <xsl:otherwise> ...... </xsl:otherwise> </xsl:choose>
其中:
<xsl:choose>是多条件判断的开始标记,</xsl:choose>是结束标记。
可以有多个<xsl:when>子元素,满足其test条件时,执行对应<xsl:when>子元素后面的内容,然后不再执行其他判断,跳出<xsl:choose>标记。
没有满足任何<xsl:when>子元素的条件时,执行<xsl:otherwise>子元素后面的内容。
对输出结果进行排序通过使用<xsl:sort>元素来实现。其属性如下:
select属性:设置排序的关键字。
order属性:设置排序的次序,ascending为升序,descending为降序。
data-type属性:设置排序是否按数字或文本进行排序,number为数字,text为文本。
在默认情况下,<xsl:sort>元素按照关键字的字母顺序进行排序。同时存在多个<xsl:sort>元素时,首先按照第一个关键字进行排序,然后是第二个,以此类推。
<xsl:sort>可以作为<xsl:apply-templates>或<xsl:for-each>的子元素,下面的示例对员工按照年龄由大到小排列输出:
<xsl:apply-templates select="员工"> <xsl:sort select="年龄" order="descending"/> </xsl:apply-templates>
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6