简单判断指令
<xsl:if>标记主要用来在在模板中设置相应的条件,来达到对XML文档中数据过滤的功能。即在输出树中有条件的插入一定的结构。其标记的格式为:
<xsl:if script="" language="" test="条件">标记内容</xsl:if>
script表示是否使用脚本程序;
language表示脚本程序使用的语言的种类;
test属性是该标记最重要的属性,用来设置标记过滤的条件。
只有当test设置的条件成立的时候,XSL处理器才会执行<xsl:if>标记下面的指令,当条件不满足的时候,不执行下面的指令。
test条件 如果一个XSL标记有“标记匹配模式”,就可以将“xsl:if”标记作为子标记来使用。
“条件”表达式的第一项必须是“标记匹配模式”匹配的XML标记。如果“标记匹配模式”匹配的XML标记不是根标记,“条件”表达式的第一项必须使用“.”来表示“标记匹配模式”匹配XML标记。
假设xsl:if标记的父标记中与“标记匹配模式”匹配的XML标记不是根标记,可以使用下列条件。
属性条件 如果想判断和“.”匹配XML标记是否有某个属性(不管属性 值为何),就可以使用“xsl:if”标记的下列格式:
<xsl:if test=".[@属性名称]"> 标记内容 </xsl:if> 假如和“.”匹配的标记是“student”,并有属性“sex”,那么“ student”标记就满足下列“xsl:if”标记中“test”所要求的条件:
<xsl:if test=".[@sex]"> 标记内容 </xsl:if>
属性值条件 如果想判断和“.”匹配XML标记是否有某个属性,并判断该属性值和某个特点属性值进行“关系比较”后的结果是否为真,就可以使用“xsl:if”标记的下列两种格式。 第1种格式 <xsl:if test=".[@属性名称 关系操作符 '特定属性值']"> 标记内容 </xsl:if> XSL 多条件判断指令
在<xsl:if>元素只有两种选择,而如何要有多种选择单靠一个<xsl:if>元素就不能胜任了,<xsl:choose>就是在多种条件中进行判断选择的。<xsl:choose>包含了一组<xsl: when>元素,在test中属性中将规定各种条件,在测试时将从顶至底依次匹配直到找到满足的条件。如果所有的<xsl:when> 元素都不满足要求,则应用<xsl:otherwise>元素。 <xsl:when>和<xsl:otherwise>。
它们一般的语法结构为:
<xsl:choose>
<xsl:when test="条件1">内容</xsl:when> ……..
<xsl:when test="条件n">内容< /xsl:when>
<xsl:otherwise>内容</xsl:otherwise>
</xsl:choose> 这样的结构,和java中的多分支语句执行的流程是一样的。
从第一个<xsl:when>开始寻找,若其中的一个test条件满足后,才执行下面的语句,执行完后跳出当前的语句块。否则的话,继续向后寻找是否有和test条件相匹配的,没有的话,执行最后一个缺省语句。缺省语句主要应对不可预料的情况的发生而设置的。