《之xsl转换》ppt课件

上传人:tia****nde 文档编号:67024238 上传时间:2019-01-06 格式:PPT 页数:36 大小:260.51KB
返回 下载 相关 举报
《之xsl转换》ppt课件_第1页
第1页 / 共36页
《之xsl转换》ppt课件_第2页
第2页 / 共36页
《之xsl转换》ppt课件_第3页
第3页 / 共36页
《之xsl转换》ppt课件_第4页
第4页 / 共36页
《之xsl转换》ppt课件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《《之xsl转换》ppt课件》由会员分享,可在线阅读,更多相关《《之xsl转换》ppt课件(36页珍藏版)》请在金锄头文库上搜索。

1、第5章 使用XSL转换XML文档,5.1 XSL概述,5.1.1 XSL基本概念 XML关心的是数据的结构,并能很好、方便地描述数据。但是,数据的显示外观也是很重要的一个方面,W3C为XML数据显示发布了两个建议规范CSS(层迭样式表)和XSL(可扩展样式语言)。 本章前半部分重点讲述怎样用CSS显示XML标记中的文本内容,下半部分讲述XSL。XSL提供了比CSS更强大的显示数据的能力,利用XSL可以把XML转换成HTML从而有美观的数据显示。,XSL的全称是eXtensible Stylesheet Language,即可扩展样式语言,是目前用来设计XML文档显示样式的主要技术之一。 XSL

2、样式表文档的内容完全符合XML的语法规定,因而可以将其看成是一种特殊的XML文档。 在显示XML文档时,XSL 样式表要比CSS样式表更具威力且更富弹性。一个XML文档链接相关的XSL样式表后,即可直接在IE 浏览器中打开,并按样式表指定的格式显示出文档内容。,5.1.2 XML节点树,XML文档的层次结构像是一颗倒挂的树,称为XML节点树。文档中的每一个组件,包括处理指令、注释或各个元素都是节点树中的一个节点。 XML节点树从代表整个文档的根节点开始,其下是XML文档声明、处理指令及根元素等子节点,而在根元素之下则是各层次子元素构成的一系列子节点。 注意:根节点代表整个XML文档,而根元素则

3、是指最上层的一个元素,它只是根节点的一个子节点。 例5.1.xml,5.1.3 XSL文档的创建与应用,1XSL文档的创建 XSL文档以 .xsl为其文件扩展名,与XML文档一样也是一种文本文件,可用任何一种文本编辑软件进行创建和修改。,2XSL文档的组成 XSL文档基本组成形式: ,说明: 因为XSL本身是一个xml文档,所以在开头,需要有XML声明语句,文档中的每一个元素和标记都必须符合XML规范。 XSL文件的根元素必须是由 xsl:stylesheet 开始的XSL样式表声明语句。 在XSL文档的根元素下有若干个模板(template), 模板用来规定XML文档中所匹配元素的输出内容和

4、输出格式。一个XSL文档至少应包含一个与根节点匹配的模板。 在模板中也可以使用各种HTML标记。,3XSL文档的引用,在XML文档中引用XSL样式表的方法是在序言部分添加如下形式的指令: 例题5-1 p85,XSL处理器把XSL样式表文件转化为HTML文件的过程称做XSL变换(XSL Tranformation,XSLT)。 IE5.5(以上版本)带有XSL处理器。 通过关联XSL样式表,XML有效地分离了数据的结构和数据的显示 ,步骤如下: 1.首先针对XML文件编写XSL样式表文件。 2.将XML文件和XSL样式表关联。 3.将XSL样式表转化为HTML文件(浏览器内置的XSL转化器负责)

5、。,4 XSL变换与HTML,5.2 XSL模板 5.2.1样式表文件中的模板,样式表的基本结构就是由标若干个称做“模板”的XSL标记组成,简称模板。模板都是根标记的子标记,模板标记的名称都是“template”,例如: 模板内容 一个模板的“模板内容”是由HTML标记和嵌入其中的XSL标记组成。,模板必须有属性match,该属性的值是一个特殊的字符串,称做模板的“标记匹配模式”。 如果XML文件中的一个XML标记匹配于XSL样式表文件中的某个模板的“标记匹配模式”,就称该模板是XML标记匹配的模板或称XML标记与该模板相匹配。 一旦匹配就可以使用该模板中的规则把匹配的XML元素标记的内容转换

6、成html从而以某种格式显示在网页上,5.2.2 主模板与XSL处理器_1,1.主模板:在模板中有一个称作“主模板”(或者叫根模板)的特殊模板,该模板中的match属性的值是“/”,如下所示: 主模板的内容 一个XSL样式表文件有且仅有 一个主模板,所谓主模板就是与 XML文件中根节点匹配的模板。 见下例:, 张大山 1993年11月22日出生 最终显示结果: 张大山 1993年11月22日出生 ,5.2.2 主模板与XSL处理器_2,2.XSL处理器:XSL处理器总是从主模板开始实施XSL变换。主模板的内容中可以包括调用其它模板的“模板调用”标记: 根据上面的“标记匹配模式”找到匹配的模板(

7、即模板的match属性值和该select属性值相匹配),然后调用之。 例题5-2 p88,5.2.2 主模板与XSL处理器_2, 张大山 李小林 转换后的结果: 张大山 李小林 ,模板调用,5.3 XSL节点选择,XSL样式表文件中的模板的格式中涉及到“标记匹配模式”,如下所示: 模板内容 “标记匹配模式”就是满足一定条件的一族XML标记。如果XML文件中的XML标记与模板的“标记匹配模式”相匹配,就称模板匹配于该XML标记,该模板内容将对XML标记内容实行变换。,5.3.1 与XML子标记匹配的模板 XSL样式表为XML文件中根标记的子标记提供输出数据的模板,这类模板中的“标记匹配模式”可以

8、是子标记的名字或根标记的名字和子标记的名字用“/”分割。 假如XML文件的根标记的名字是student,它有name,sex和birthday三个子标记,name下又有score子标记,那么下列三个模板分别是这三个子标记相匹配的模板: (1) 模板的内容 (2) 模板的内容 ,5.3.1 与XML子标记匹配的模板,(3) 模板的内容 而下列模板是与四个子标记:name,score,sex和birthday都相匹配的模板: 模板的内容 ,5.3.2 与xml任意级别的子标记匹配的模板,通过使用统配符“*”可以建立匹配于任何级别标记的模板,无论该标记是根标记的第几级子标记。下列模板: 模板的内容

9、是与根标记student下的name标记下的所有级别的子标记相匹配的模板。,5.3.2 与xml任意级别的子标记匹配的模板, 模板的内容 XML文件的标记是树型结构,使用“/”分割符必须从根标记出发才能确定出一类标记。下列模板无效: 模板的内容 ,5.3.2 与xml任意级别的子标记匹配的模板,建立匹配于根标记下的任意级别的xml子标记的模板还有一种简便的方法,使用“/”。 模板的内容 是与任何名字为score的标记相匹配,无论该标记是根标记下的哪一级子标记。 又如:,5.3.2 与xml任意级别的子标记匹配的模板, 模板的内容 模板的内容 P92例5-3,5.3.3 选择指定的元素属性,在一

10、些XSL样式表的特定标记中,同样可以选择和输出XML文档元素的属性内容,其语法格式为: 属性名 例如: ,5.3.3 匹配指定元素属性的模板,通过使用“标记属性”或“标记属性=属性值”可以建立与具有指定属性的标记相匹配模板,这样,我们就让名字相同但属性不同的标记匹配于不同的模板。 下列模板: 模板的内容 是与名字为name且具有属性ID的标记相匹配的模板,无论name标记是根标记的哪一级子标记。 例题5-4 p94,5.3.4使用“ ”和“|”给出XML标记匹配的模板,可以使用“ ”来给出一个标记需满足的条件,例如: 模板的内容 是与名字为book且具有子标记price的标记相匹配的模板,无论

11、book标记是根标记的哪一级子标记。 可以使用“|”给出几个可以选择的标记,例如: 模板的内容 是与标记名字为“单价”、“库存量”或“生产日期”等标记相匹配的模板,无论这些标记是根标记的哪一级子标记。,5.4常用的XSL标记,5.4.1 xsl:for-each的用法 “xsl:for-each”XSL标记的格式如下: 内容 该XSL标记必须在模板中使用。XSL处理器根据“xsl:for-each”标记中的中的“标记匹配模式”到XML文件中寻找第一个与“标记匹配模式”匹配的XML标记, 一旦找到这样的XML标记就对“xsl:for-each”标记中的“内容”实施变换,并将变换后的内容嵌入到HT

12、ML文件中。 然后,再寻找下一个和“标记匹配模式”匹配的XML标记,直到没有匹配的标记为止。 例题5-7 p99,5.4.1 xsl:for-each的用法之模板调用,对于不带select属性的模板调用标记,应当作为“xsl:for-each”标记中的子标记来使用: 其它内容 其它内容 XSL处理器首先根据“xsl:for-each”标记中的中的“标记匹配模式”到XML文件中寻找第一个和“标记匹配模式”匹配的标记,而模板调用标记就会调用与当前找到的标记下的所有级别子标记相匹配的模板。即相当于执行以下模板调用: 然后,再寻找下一个和“标记匹配模式”匹配的标记,直到没有匹配的标记为止。 XSL处理

13、器将依次将“xsl:for-each”标记变换后的内容嵌入到HTML文件中。 例题5-5 p96,5.4.1 xsl:for-each的用法之模板调用,5.4.2 xsl:value-of的用法,“xsl:value-of”XSL标记的格式为: 该XSL标记必须在模板中使用,即作为模板的子孙标记。当“标记匹配模式”是特殊的“.”时,可以将 简写为 XSL处理器将“xsl:value-of”标记变换为和“标记匹配模式”相匹配的XML标记及其子孙标记的文本内容。,5.4.2 xsl:value-of的用法, 其中的将被变换为“张三”标记及其子标记的文本内容,张三一定是“大学生”的子标记。 将被变换

14、为“大学生”标记及其子标记的文本内容。 注意: xsl:value-of 标记只可能输出父标记及其子孙标记的文本内容。 例题5-8 p101 ,例题5-9 p102,5.4.3 xsl:if的用法, 内容 该XSL标记必须在模板中使用,如果和“.”匹配XML标记有该子标记,就可以使用就执行内容部分,否则就不执行。例如: ,5.4.3 xsl:if的用法, 内容 表示当前标记下有子标记,并且子标记有内指定值的属性,则执行内容部分。如: ,5.5 XSL应用实例,P152例5.16 P170例5.21,练习题,(1)样式表的根元素为( )。 A. xsl:stylesheet B. xsl:imp

15、ort C. xsl:include D. xsl:template (2)在xsl中,匹配XML的根节点使用( )。 A. *号 B. .号 C. /号 D.XML中根元素名称 (3)( )元素来访问所有符合条件的子节点。 A. xsl:if B.xsl:for-each C.xsl:choose D. xsl:otherwise (4)添加多个限制条件,使用( )号分隔。 A. | B. | C. / D.,A,C,B,C,A,练习题,(1)将XML文档与XSL文档链接,需要设置stylesheet指令的type属性为( )。 (2)应用模板元素使用( )。 (3)匹配任意节点使用( )。 (4)( )用于匹配当前节点,包括处理指令、注释和文本节点。 (5)对于不带select属性的模板调用标记,应当作为(for-each)标记中的子标记来使用,text/xsl,xsl:apply-templates,*,点号,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号