大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> XML专区 -> XSLT轻松入门第三章:XSLT的元素语法

XSLT轻松入门第三章:XSLT的元素语法

时间: 2021-07-31 作者:daque

  经过前方两章的引见,咱们仍旧对xslt的基础观念和它的变换进程有了少许领会。底下咱们一道来进修xslt的简直语法。说到语法老是比拟呆板的,您不妨大概上欣赏一遍,等您真实须要运用xslt的功夫,再提防接洽它们。 3.xslt的元素语法 3.1 xsl:template和xsl:apply-templates 3.2 xsl:value-of 3.3 xsl:for-each 3.4 xsl:if 3.5 xxsl:choose, when, otherwise 3.6 xsl:sort

3.1 xsl:template和xsl:apply-templates

 

沙盘(template)是xslt中最要害的观念之一。xslt文献即是由一个一个的沙盘构成,任何一个xslt文献起码包括一个沙盘。沙盘的观念就象是搭积木;你即使是步调员,也不妨将沙盘看作一个本领,一个类,大概一个模块。它们不妨被组装拉拢,也不妨独立成块,各别的沙盘遏制各别的输入方法。沙盘(template)由两局部构成:配合形式(match pattern)和实行。大略的讲形式设置xml源文书档案中哪一个节点将被沙盘处置,实行则设置输入的是什么方法。两局部对应的语法为xsl:template和xsl:apply-templates。

 

xsl:template的语法是:

 

<xsl:templatematch = patternname = qnamepriority = numbermode = qname><!-- 实行实质 --></xsl:template>

 

xsl:template的效率是设置一个新沙盘。属性中name,priority,和mode用来辨别配合同一节点的各别沙盘。它们不是常用的属性。match属性则遏制沙盘的配合形式(pattern),配合形式是用来定位xml源文书档案中哪一个节点被沙盘处置。一个沙盘配合一个节点。咱们用一个例子来扶助领会:假如咱们要处置一个包括章节和段落文书档案。咱们用para元素设置段落,用chapter元素设置章节。咱们来看看match属性大概的值。底下的语句写法证明沙盘配合一切的para元素

 

<xsl:template match="para"></xsl:template>

 

底下的语句写法证明沙盘配合一切的para元素和一切的chapter元素:

 

<xsl:template match="(chapter|para)"></xsl:template>

 

底下的语句写法证明沙盘配合一切的父节点为chapter元素的para元素:

 

<xsl:template match="chapter//para"></xsl:template>

 

底下的语句写法证明沙盘配合根节点:

 

<xsl:template match="/"></xsl:template>

 

咱们再来看apply-templates语法:

 

<xsl:apply-templatesselect = node set-expressionmode = qname></xsl:apply-templates>

 

xsl:apply-templates用来实行那一个节点被沙盘简直处置。你不妨将它领会为步调中挪用子因变量。select属性用来设置真实的节点称呼。xsl:apply-templates老是包括在xsl:template元素中,象如许:

 

<xsl:template match="/"><xsl:apply-templates select="para"/></xsl:template>

 

这段代码证明摸板配合所有文书档案(根节点),简直实行时处置根节点下一切para元素。

 

<xsl:template match="para"><p><xsl:apply-templates/></p></xsl:template>

 

而这一段代码则表白摸板配合para节点,一切para下的子元素都将被处置。

3.2 xsl:value-of

 

xsl:value-of用来将源文书档案中元素的文本值写到输入文书档案中。比方:有一个部分材料的xml文书档案:

 

<?xml version="1.0" encoding="iso-8859-1"?><person><name>ajie</name><age>28</age></person>

 

我即使想在输入文书档案中表露上头这个xml源文书档案中的name元素的值,不妨如许写xslt代码:

 

<xsl:template match="person"><xsl:value-of select="name"/></xsl:template>

 

实行后,你会看到"ajie"被独立表露出来。个中match="person"设置摸板配合person节点,xsl:value-of 语法证明须要输入一个节点的值,而select="name"则设置须要被输入的元素为name。看这个进程是否和数据库里查问一部分的名字很象?固然,xsl:value-of查问再有更多,更搀杂的语法,由于是波及探求和定位的功效,咱们会放在反面的xpath语法中在提防解说。同样功效的再有xsl:copy-of,用法一律,就不反复证明了。

3.3 xsl:for-each

 

xsl:for-each语法承诺你轮回处置被采用的节点。比方:有一个含多个部分材料的xml文书档案:

 

<?xml version="1.0" encoding="iso-8859-1"?><people><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动作一种变换谈话的宏大功效。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.