【XML技术】XSL的基本语法
???? <xsl:value-of select="name" /> 匹配当前节点的所有子节点为<name>的元素.
???? <xsl:value-of select="//student" /> 匹配当前节点中所有后继节点名为<student>的元素.
???? 在XSL样式表中必须有一个模板规则与根元素相匹配.
⊙循环判断语句<xsl:for-each>
???? 在XML文档中,如果存在两条以上的数据,必须使用<xsl:for-each>元素指定上层的节点元素,再用<xsl:value-of>设定要输出的内容,才能显示整个XML文档数据.
???? 标准语法格式为:
???? <xsl:for-each select="pattern" order-by="patternlist">
??????? ......
???? </xsl:for-each>
???? 属性order-by的内容为排序标准列表,在列表元素前面添加加号(+)表示按升序排序,添加减号(-)表示按降序排列.
⊙条件判断句<xsl:if>
???? <xsl:if>语句是简单地对条件进行判断.它有三种用法:
???? 1.如果要用元素的名称作为匹配条件,语法: <xsl:if match="元素名称">
????? 下例对"name"元素的内容用红色来显示:
????? <xsl:if match="name">
????????? <font color="red"></xsl:value-of /></font>
????? </xsl:if>
???? 2. 如果用元素内容作为匹配条件,语法为: <xsl:if match="元素名称[.'元素内容']">
?????? 下例对成绩超过100分的学生输出"满分"信息.
?????? <xsl:if match="score[.='100']">
???????? 满分
?????? </xsl:if>
???? 3. 如果用元素的属性作为匹配条件,语法为: <xsl:if test=".[@属性名称='属性值']">
?????? 下例是对ID号为105的学生输出"105号学生"信息:
??????? <xsl:if test=".[@ID='105']">
??????????? 105号学生
??????? </xsl:if>
⊙多条件判断语句<xsl:choose>
????? 与<xsl:when>和<xsl:otherwise>一起使用,可以进行多条条的分支判断.
????? 下列例子对成绩不到80分的学生输出"一般",对超过90分的学生输出"优秀",对介于其间的学生输出"良好"信息:
????? <xsl:choose>
?????????? <xsl:when match=".[score $lt$ 80]">一般</xsl:when>
?????????? <xsl:when match=".[score $gt$ 90]">优秀</xsl:when>
?????????? <xsl:otherwise>良好</xsl:otherwise>
????? </xsl:choose>
⊙排序语句<xsl:sort>
????? 在XSL中可以对XML源文档的元素进行重新排序,排序的语法就是<xsl:sort>.下列代码就是将文档元素按name排序.
????? <xsl:template match="student">
???????? <xsl:apply-templates select="student">
???????????? <xsl:sort select="@name"/>
???????? <xsl:apply-templates>
????? </xsl:template>