Ajax编程技术第八章XSLT和XPath.ppt

上传人:小飞机 文档编号:5415022 上传时间:2023-07-05 格式:PPT 页数:52 大小:453KB
返回 下载 相关 举报
Ajax编程技术第八章XSLT和XPath.ppt_第1页
第1页 / 共52页
Ajax编程技术第八章XSLT和XPath.ppt_第2页
第2页 / 共52页
Ajax编程技术第八章XSLT和XPath.ppt_第3页
第3页 / 共52页
Ajax编程技术第八章XSLT和XPath.ppt_第4页
第4页 / 共52页
Ajax编程技术第八章XSLT和XPath.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《Ajax编程技术第八章XSLT和XPath.ppt》由会员分享,可在线阅读,更多相关《Ajax编程技术第八章XSLT和XPath.ppt(52页珍藏版)》请在三一办公上搜索。

1、Ajax编程技术第八章XSLT和XPath,8.1 概述,近年来,浏览器的主要改进之一就是它添加了可扩展样式表语言转换(Extensible Stylesheet Language Transformation,XESLT)处理程序。而在这之前,XSLT被用来将一个XML文档的指定部分转换成另一个XML文档。XSLT的主要优点:使文档结构和Web页面中内容及表现方式的分离。可以使用其他XML语言(例如XPath)对XML文档进行查询。我们不必每次否访问数据库进行查询。只要从服务器得到XML文档后,在客户端就可以决定使用其中哪些数据。使用XPath从XML 文档中选择和查询数据比使用JavaSc

2、ript的效率更高更简单。还可以使用层叠样式表(CSS)添加样式,而样式表也可以使用这种方式来控制页面的显示方式。我们还可以使用XSLT把普通XML文档展示得精美绝伦。,8.1 概述,XSLT的缺点用XSLT做的事情差不多都可以用JavaScript和DOM实现;XSLT不仅增加了返回给客户端的文件大小,而且其结构也使得习惯于HTML和CSS技术人不认同;浏览器存在兼容性问题,IE和Firefox使用或呈现XSLT主要元素的方式不同。,8.2 XSLT及其用途,什么是XSLXSL和XML文件一样也是源于SGML的DSSSL(Document Style Semantics and Specif

3、ication Language),基本上XSL并不像CSS只是单纯的定义样式,它的功能更加强大,属于一种真正的Script语言,在功能上主要分为两个部分,如下所示:转换XML文件:将XML文件架构转换成另一个XML架构的文件,或非XML文件,例如:HTML文件,即XSLT。格式化XML文件:格式化元素内容的样式,以便显示出XML文件,即XSL-FO。,8.2 XSLT及其用途,XSLT是如何工作XSLT内容本身也是一份XML文件,XSLT的工作是将来源XML元素转换成XSLT元素,XSLT并不是在显示XML元素内容,只是将XML元素转换成其它文件的格式,所以通常并不称它为样式,而是XSLT

4、Script转换语言。在作法上XSLT处理器(XSLT Process)将XML文件依照XSLT Script的程序代码产生转换的结果,这种程序代码和JavaScript或VBScript不同,它属于一种模板驱动(Template-driven)转的换Script。,8.2 XSLT及其用途,XSLT处理器能够将XML文件的来源文件,经过XSLT的范本比对处理后,产生输出的HTML或XML文件,如下图所示:,8.2 XSLT及其用途,XSLT处理器架构整个XSLT处理器的转换架构,如下图所示:,CSS与XSLT的差异,虽然CSS和XSLT都可以将XML元素的内容,在浏览程序显示所需的内容,其差

5、异如下表所示:,8.3 什么是XPath,XPath是一种语言,但它并不属于SQL类的查询语言,它只是一种节点位置的语言,用来描述XML元素的位置,如同硬盘文件夹的文件路径,如下所示:C:xmlChap8Ch8-3.xml上述路径指出文件Ch8-3.xml的位置,XPath指令则是指出XML元素的位置,也就是树状结构节点的位置,使用类似数据夹路径一般的字符串,定义出XML元素节点的位置,目前XPath语言同时被XSL和XPointer所采用,作为XML元素位置的描述语言。,XPath资料模型,01:02:03:04:eXtensible Markup Language05:可扩充展标示语言 X

6、ML 06:07:08:encoding09:字符集10:11:12:Uniform Resource Identifier13:统一资源标识符URI14:15:,XPath资料模型,XPath资料模型,XPath逻辑树状结构的节点种类,如下表所示:,XPath的位置路径,XPath语言的主要目的就是描述节点相对其它节点的位置,也就是选择那些符合条件的节点,我们称为位置路径(Location Path),位置路径的运算子,如下表所示:,XPath的位置路径,所有元素的位置路径XML文件的所有元素,也就是XPath的根节点,如下所示:/上述位置路径为根节点下的所有XML元素。,XPath的位置路

7、径,子元素的位置路径对于指定的元素,我们可以使用/正确的指出是那一个title元素,如下所示:/glossary/item/title上述位置路径和下面的路径属于不同的title元素,如下所示:/glossary/item/definition/title如果需要指出上述两个title元素,此时就需要使用/运算子,如下所示:/title上述指的是根节点下所有的title元素,XML文件只要有title元素都符合此位置路径。,XPath的位置路径,通配符*通配符*代表所有的元素和属性,如下表所示:,XPath的位置路径,属性的位置路径如果位置路径属于属性,此时就需要使用符号,如下所示:/glos

8、sary/item/title/version上述位置路径是从根节点开始,一层一层向下找寻子元素title,找到后传回version属性的值。,XPath的位置路径,节点的索引条件XML元素的可能拥有同名的多个子元素,对于同名的元素,我们可以使用和符号定义元素的索引条件,如下表所示:,XPath的位置路径,节点间的关系-轴(Axis)1轴是指节点的关系,可以指出节点搜寻的方向,用来在XML文件找寻所需的元素。在XPath的位置路径使用轴,可以配合使用前面的索引条件,如下所示:axis:nodepredicate上述路径的轴之后是使用:符号连接索引条件。,XPath的位置路径,节点间的关系-轴(

9、Axis)2,XPath的位置路径,节点间的关系-轴(Axis)3一些位置路径的范例,如下表所示:,XPath的位置路径,节点间的关系-轴(Axis)4轴位置路径相当于一些位置路径的运算子,如下表所示:,XPath的位置路径,节点的组合条件如果位置路径的条件不只一个,此时我们可以组合各条件以选择所需的元素,请使用|符号组合各条件,如下表所示:,XPath的函数,在位置路径中,我们可以使用一些函数取得所需的元素,如下表所示:,8.4 在XML文件使用XSLT,XSLT的语法XSLT的语法和CSS相似,其基本的语法,如下所示:上述指令使用PI关键词xml-stylesheet指定XML文件使用的X

10、SLT Script档案,各参数的说明,如下所示:type属性:使用的样式种类,XSLT和XSL为text/xsl。href属性:XSLT Script档案的路径,通常使用的扩展名为.xslt或.xsl,本书是使用.xsl,XML Spy预设使用.xslt。,8.4 在XML文件使用XSLT,示例:XML文件01:02:03:大家好!,8.4 在XML文件使用XSLT,XSLT文件:Ch8-3.xsl01:02:03:04:05:测试XSLT06:07:08:09:10:11:,8.4 在XML文件使用XSLT,8.5 XSLT的基本架构,XSLT的基本架构和XML一样,在宣告为一份XML文件

11、后,接着就是根标签,如下所示:,XSLT的元素,8.5 XSLT的基本架构,XRay XML Editor编辑与转换XSLT ScriptXRay XML Editor支援XSLT的編輯和轉換,請啟動XRay載入XML和XSLT Script 後,就可以使用XSLT轉換輸出成 HTML 文件,如下圖所示:,8.6 XSLT的范本元素,范本程序設計內容元素xsl:value-of范本元素xsl:template递归范本元素xsl:apply-templates,8.6 XSLT的范本元素,范本程序設計XSLT Script属于一种模板程序设计,不同于传统或对象导向的程序设计拥有固定的程序执行流程

12、,整份XSLT Script只是在定义XML元素的模板规则,所有的XML元素需要拥有对应的模板,以便定义转换的规则,如下图所示:,8.6 XSLT的范本元素,內容元素xsl:value-of选择元素的内容在XML文件使用XSLT进行转换时,我们需要取得XML元素的内容,只需指定select属性的元素名称即可,例如:item元素的模板,如下所示:上述指令当XSLT处理器找到item元素时,上述模板xsl:value-of的select属性取得title元素的内容,而且将它插入HTML标签。,8.6 XSLT的范本元素,选择属性的内容如果转换输出的为XML元素的属性,我们需要在属性前加上符号,如下

13、所示:,8.6 XSLT的范本元素,HTML卷标的属性内容如果输出的HTML卷标属性为XML元素的属性,卷标不能写成下面的格式,如下所示:/上述标签拥有上述卷标属性使用取代xsl:value-of元素。,8.6 XSLT的范本元素,模板元素xsl:template-1模板元素的语法 上述开始标签和结尾卷标间的就是模板定义的转换规则,XSLT处理器会将此范本套用在match属性指定的元素,这也包括其下的子元素,以此例match属性的模型为/,这指的是根节点和其下的所有元素。,8.6 XSLT的范本元素,match属性xsl:template元素最重要的属性就是match,这个属性值就是XPath

14、指出元素的位置路径,一些match属性的元素,如下表所示:,8.6 XSLT的范本元素,递归模板元素xsl:apply-templates递归模板元素的语法 上述模板元素的模型为item,拥有两个子元素title和definition,其中definition也拥有同名的子元素title,如果没有递归模板元素,XSLT处理器就到item元素为止。,8.6 XSLT的范本元素,如果使用递归模板元素,处理器会递归继续找寻子节点,此时有两种情况,如下所示:没有select属性:继续找寻所有的子节点,也就是title和definition元素,再次找寻是否有符合的范本,继续执行转换。拥有属性selec

15、t:select属性能够指定开始的元素,以上述为例,就是由item子元素definition开始,如此就不包括子元素title。,8.7 XSLT的回路元素,回路元素xsl:for-each对于XML文件的重复元素,xsl:for-each回路元素如同第六章Data Island的卷标,可以显示所有XML元素的内容。.上述回路元素的select属性指定显示的元素,以此例显示所有的book元素,卷标内容可以使用xsl:value-of元素输出XML元素的内容。,8.7 XSLT的回路元素,过滤XML元素的select属性在使用xsl:for-each回路时,如果不想显示所有的XML元素,我们可以

16、在select属性加上过滤条件,只显示符合条件的元素,如下所示:上述回路的条件为book元素属性sales是Y,详细的条件语法就是XPath,请参阅第8-2节的说明。,8.7 XSLT的回路元素,排序元素xsl:sortHTML标签的内容无法进行排序的处理,但是XSLT Script拥有排序元素,能够指定XML元素进行排序。上述元素的select属性指定排序的元素,order属性指定是由小到大的ascending或decending由大到小。排序元素可以是xsl:for-each或xsl:apply-templates的子元素,XSLT处理器在输出前就会依指定的元素进行排序。,8.8 XSLT

17、的条件元素,单一条件元素xsl:if目前的XSLT Script都是直接输出转换的结果,但是在转换时我们可能需要测试一些情况,以决定是否转换,这就属于单一条件元素。上述xsl:if元素使用test属性指定XPath条件,如果条件为True处理子元素,否则就不处理。,8.8 XSLT的条件元素,多条件元素xsl:choose如果在条件处理上需要多条件,我们可以使用xsl:choose、xsl:when、xsl:otherwise元素建立多条件元素。500.,8.9 XSLT的函数元素,呼叫函数元素xsl:call-template建立模板函数.上述模板并不是XML元素的模板,而是使用name属性

18、建立一个名为showbook的模板函数。,8.9 XSLT的函数元素,呼叫模板函数元素.上述xsl:call-template元素呼叫模板函数,name属性指定模板函数的名称,以此例是呼叫showbook。,8.9 XSLT的函数元素,模板函数的参数传递.如果模板函数需要传入参数,只需在xsl:template元素插入子元素xsl:param,每一个xsl:param元素为一个参数,name属性为参数名称,select属性为参数的默认值,当呼叫模板函数时没有传入参数,就是使用select属性的默认值。,8.9 XSLT的函数元素,在元素插入JavaScript程序代码如果转换的HTML文件拥有

19、JavaScript程序代码,此时的标签需要使用CDATA区块,如下所示:,8.10 XML元素的转换技巧,复制元素、删除元素和更改元素名称-1复制元素xsl:copy如果XML元素名称是输出元素的名称,我们可以直接使用xsl:copy元素输出XML元素名称,例如:XML元素title,如下所示:上述模板元素直接将title元素输出成同名的元素。,8.10 XML元素的转换技巧,刪除元素如果想删除指定的XML元素,只需建立所需的模板元素,元素内容为空的,如下所示:上述模板元素为空元素,也就是删除XML元素code。,8.10 XML元素的转换技巧,更改元素名称如果需要更改元素名称,例如:将XML的title元素输出成HTML的h2标签,如下所示:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号