XSLT中文入门(6)_动易Cms教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

<PERSON>
<name>ajie</name>
<age>28</age>
</PERSON>
<PERSON>
<name>tom</name>
<age>24</age>
</PERSON>
<PERSON>
<name>miake</name>
<age>30</age>
</PERSON>
</PEOPLE>

我需要显示所有人的姓名,则可以将XSLT代码写成:

<xsl:template match="PEOPLE">
<xsl:for-each select="child::PERSON">
<xsl:value-of select="name"/>
</ xsl:for-each>
</xsl:template>

3.4 xsl:if

xsl:if类似普通程序语言的if条件语句,答应设定节点满足某个条件时,被模板处理。xsl:if的语法格式为:

<xsl:if test=布尔表达式>
template body
</xsl:if>

例如:

<xsl:template match="PEOPLE">
<xsl:if test="@name">
<p><xsl:value-of select="@name"/></p>
</xsl:if>
</xsl:template>

这段代码的意思是检测PEOPLE节点下所有的元素,假如发现有<name>元素,则将<name>元素的值输出。其中@符号是统配符,表示节点下所有的元素。

3.5 xsl:choose, xsl:when 和 xsl:otherwise

xsl:if语法没有else的属性。假如我们要进行多项选择,那么就要使用xsl:choose / xsl:when / xsl:otherwise系列流程控制语法了。具体的使用请看下面的XSL文件例子:

<xsl:template match="PEOPLE">
<xsl:choose>
<xsl:when test="@name = 'ajie'">
<B><xsl:value-of select="@name"/></B>
</xsl:when>
<xsl:when test="@name">
<I><xsl:value-of select="@name"/></I>
</xsl:when>
<xsl:otherwise>
No name available
</xsl:otherwise>
<xsl:choose>
</xsl:template>

说明:首先在PEOPLE节点下寻找<name>属性值为ajie的元素,假如找到,将ajie用粗体输出;假如没有发现值为ajie的<name>元素,则将所有的<name>元素的值都用斜体输出;假如没有发现任何<name>元素,则显示"No name available"。

3.6 xsl:sort

在XSLT中可以对XML源文档的元素进行重新排序,排序的语法就是xsl:sort。举例:下面的代码就是将文档元素按name排序。

<xsl:template match="PEOPLE">
<xsl:apply-templates select="PERSON">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</xsl:template>

以上是XSLT的元素的主要语法,还有很多其他的语法,例如:import, include, element, attribute, number, param等等语法,在这里就不一一解释。我们的目的是让您对XSLT的语法有基本的概念,理解XSLT作为一种转换语言的强大功能。


XSLT轻松入门第四章:XPath的语法
作者: 阿捷
4.XPath的语法

我们在前面已经提到过,XPath是用来帮助XSLT在XML源文档中查找定位信息的语言。在实际使用过程中,XPath和XSLT总是混在一起使用,在上面一章的语法例子中我们已经有使用到XPath的语法,只是没有明确点出。但W3C将它们分成两个标准,所以我们也将它们拆成两章来讲解。


4.XPath的语法


4.1 当前位置


4.2 寻址操作


4.3 运算符


4.4 功能函数

4.1 当前位置


当我们使用XSLT处理XML源文档是,我们用Context来表示当前正在被模板处理的节点位置。比如xsl:template match="/"语句中表示Context在文档的根(root)节点。我不知道如何准确的翻译Context这个词,它类似于C语言里的指针,表示程序当前运行的位置。理解Context对于正确处理XSL模板非常重要,当您的XSL模板输出的文档和您想要的不一样,最先应该分析的就是Context在哪里。

查看更多 动易Cms教程  动易Cms模板

来源:模板无忧//所属分类:动易Cms教程/更新时间:2006-06-13
相关动易Cms教程