上一篇主要入门了 XSL,这一课来进一步学习XSL。
1 语法
(1) <xsl:if> 元素
语法:
<xsl:if test="expression">
...
...如果条件成立则输出...
...
</xsl:if>
如需添加有条件的测试,请在 XSL 文件中的 <xsl:for-each> 元素内部添加 <xsl:if> 元素。(下面的代码仅仅会输出价格等于 10 的 CD 的 title 和 artist 元素) 注:小于等于 可以组合起来使用。
<xsl:for-each select="catalog/cd">
<xsl:if test="price = 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:if>
</xsl:for-each>
(2) <xsl:choose> 元素
<xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试。可以理解成C语言里面的条件分支case when。
语法
<xsl:choose>
<xsl:when test="expression1">
... 输出 ...
</xsl:when>
<xsl:when test="expression2">
... 输出 ...
</xsl:when>
<xsl:otherwise>
... 输出 ....
</xsl:otherwise>
</xsl:choose>
(3) <xsl:apply-templates> 元素
<xsl:apply-templates > 元素可把一个模板应用于当前的元素或者当前元素的子节点。
<xsl:apply-templates select="//fix/header/group" mode="fieldmode"/>
<xsl:template mode="fieldmode" match="group">
补充
xsl中 text() 与 . 的区别在于:text()是目前节点位置下的文本节点,而. 是取目前节点位置下所有层次的文本节点