当前位置:首页 > 日记 > 正文

XSLT易于启动第三章:XSLT的元素语法

XSLT易于启动第三章:XSLT的元素语法

  通过前面两章的介绍,我们已经对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的语法是:



 



match = pattern

name = qname

priority = number

mode = qname>





 


xsl:template的作用是定义一个新模板。属性中name,priority,和mode用来区别匹配同一节点的不同模板。它们不是常用的属性。match属性则控制模板的匹配模式(pattern),匹配模式是用来定位XML源文档中哪一个节点被模板处理。一个模板匹配一个节点。我们用一个例子来帮助理解:

假设我们要处理一个包含章节和段落文档。我们用para元素定义段落,用chapter元素定义章节。我们来看看match属性可能的值。下面的语句写法说明模板匹配所有的para元素



 






 


下面的语句写法说明模板匹配所有的para元素和所有的chapter元素:



 






 


下面的语句写法说明模板匹配所有的父节点为chapter元素的para元素:



 






 


下面的语句写法说明模板匹配根节点:



 






 


我们再来看apply-templates语法:



 



select = node set-expression

mode = qname>



 


xsl:apply-templates用来执行那一个节点被模板具体处理。你可以将它理解为程序中调用子函数。select属性用来定义确切的节点名称。xsl:apply-templates总是包含在xsl:template元素中,象这样:



 








 


这段代码说明摸板匹配整个文档(根节点),具体执行时处理根节点下所有para元素。



 








 


而这一段代码则表示摸板匹配para节点,所有para下的子元素都将被处理。


3.2 xsl:value-of



 


XSL:value-of用来将源文档中元素的文本值写到输出文档中。例如:

有一个个人资料的XML文档:



 


<?xml version="1.0" encoding="iso-8859-1"?>



ajie

里查询一个人的名字很象?当然,xsl:value-of查询还有更多,更复杂的语法,因为是涉及寻找和定位的功能,我们会放在后面的XPath语法中在仔细讲解。

同样功能的还有xsl:copy-of,用法一样,就不重复解释了。


3.3 xsl:for-each



 


xsl:for-each语法允许你循环处理被选择的节点。例如:有一个含多个个人资料的XML文档:



 


<?xml version="1.0" encoding="iso-8859-1"?>





ajie

28





tom

24





miake

30





 


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



 












 


3.4 xsl:if



 


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



 




template body



 


例如:



 












 


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


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



 


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



 




















No name available







 


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



 


3.6 xsl:sort



 


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



 












 


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


相关文章

Adobe开始提供最新的HTML5软件工具

Adobe开始提供最新的HTML5软件工具

软件工具,提供最新,电脑软件,Adobe,Adobe开始提供最新的HTML5软件工具: 5月20日,据国外媒体报道,Adobe星期三在谷歌I/O开发者大会上宣布,网络设计者和开发人员不久将能够使用最新的HTML5解决方案。 在大会上,Adobe宣布推出Adobe HTML5的包,这是…

微软、反盗版和Antimonopoly

微软、反盗版和Antimonopoly

反盗版,电脑软件,Antimonopoly, 据媒体报道,将于今年10月正式发行的微软新一代操作系统Windows 7网上盗版已经开始热卖,价格从五元到四五十元不等,番茄花园案尚未完全了结,微软再次遭遇盗版之痛。作为全球最大的软件商,微软的盗版率一直…

如何自动登录--如何通过设置用户密

如何自动登录--如何通过设置用户密

设置,用户,自动登录,用户密码,电脑软件,When the user password is set in the windows system, the boot will prompt the user to enter the password to enter the system.After the users of the windows7 system have set the passwor…

富士通发布dynaeyeexv2.0票据OCR软

富士通发布dynaeyeexv2.0票据OCR软

票据,富士通,中文版,电脑软件,OCR,北京,中国,2013年10月24日mdash;全球领先的信息和通信技术解决方案和服务提供商富士通(富士通)发布了一个新的票据OCR软件的SDK(软件开发工具包),代dynaeye前v2.0中国企业对中国企业和行业客户。这是dynaeye EX V1…

苹果iPhone5或将于九月上市

苹果iPhone5或将于九月上市

上市,将于,电脑软件,【搜狐数码消息】北京时间4月20日消息,据国外媒体报道,三名消息人士周三透露,苹果新一代iPhone将于今年7月份投产,发售时间为9月份。其中一名消息人士称,iPhone5将配置速度更快的处理器,外观与iPhone4极为相似。两名消息人士…

document.execcommand描述

document.execcommand描述

描述,电脑软件,document,execcommand,                                                                                               …

资源消耗与贪婪BT下载客户端综合评

资源消耗与贪婪BT下载客户端综合评

客户端,下载,贪婪,综合评价,消耗,文/ Dahua bt下载是目前最热门的下载。看着令人眼花缭乱的BT下载,用户很难选择适合自己的BT下载。从今天开始,我将介绍多个BT下载的特点和功能。一个可以下载多个BT,占用非常小的内存和非常快。今天,它检讨其…

Windows7系统侧边栏的删除和添加

Windows7系统侧边栏的删除和添加

系统,删除,侧边栏,电脑软件,Win7的一些操作习惯与我们常用的xp系统有很大不同,不适应Win7操作的朋友可以来学习一下,使win7更上手,操作更简洁。 1、移除Win7隐藏侧边栏 Win7的侧边栏绝对是一个隐身人,它不仅存在,并且随着电脑启动会自动开启在…

启动iPhone4S降价的最佳时间是什么

启动iPhone4S降价的最佳时间是什么

启动,时间,电脑软件,iPhone4S,根据苹果的老传统,当新一代产品发布出售后,老一款产品将会降价1000左右。一边是即将发布的新一代苹果,一边又是正在降价的iphone4,iphone4S,应该选择买哪一款呢?他降价又能降到多少呢?降价这个情况要从iphone3GS说起…

微软再次表示有意收购雅虎:最佳时机

微软再次表示有意收购雅虎:最佳时机

雅虎,收购,最佳时机,电脑软件, 两个月前曾经有媒体报道微软可能再次提出收购雅虎,但随即遭到微软首席执行官史蒂夫-鲍尔默的否认。然而近日,他在接受英国《金融时报》 采访时表示,微软已经重新开始,准备收购雅虎的搜索业务。鲍尔默表示微…

教你编辑用户的注册表而不必登录。

教你编辑用户的注册表而不必登录。

登录,用户,教你,注册表,而不必,文/李一华 在根键{ hkey_current_user },当前登录用户保存用户信息,与当前用户相关的配置信息一般是修饰下这个关键。如果你想修改其他用户的配置信息,您必须先登录与相应的用户帐户,然后改变它的根键{ hkey_cur…

asp3高级编程(九)

asp3高级编程(九)

高级编程,电脑软件,2。创建一个变体数组 在会话和应用程序对象中,还没有讨论创建和使用变体数组存储值的方法,这里讨论的是一种非常有用的技术。 存储二进制序列的数组行在内存中的一个连续区域中指定。为了安排变量,您需要指向第一个条目并给…