第7讲-XSL转换-Ⅰ( SN3005 XML07).ppt_第1页
第7讲-XSL转换-Ⅰ( SN3005 XML07).ppt_第2页
第7讲-XSL转换-Ⅰ( SN3005 XML07).ppt_第3页
第7讲-XSL转换-Ⅰ( SN3005 XML07).ppt_第4页
第7讲-XSL转换-Ⅰ( SN3005 XML07).ppt_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三卷: 可扩展样式表语言 (Extensible Stylesheet Language),XSL转换-,2,回顾,学会定义 Schema 区分 Schema 和 DTD 识别 XML Schema 中的元素 理解验证带有 Schema 的 XML 文档,3,目标,XSL 的基本概念 定义 XSL样式表 理解 XSL 样式表的结构和语法 使用模板进行元素匹配 XPath的概念和用法,4,什么是XSL,由于XML把主要精力放在数据的结构而不是其显示格式上,所以每个XML文档的显示都必须借助于额外的样式表。(XSL、CSS),5,CSS只能处理简单的、顺序固定的XML 文件,对于复杂的、高度结构

2、化的XML文档无能为力了。,要求: 将小组赛、决赛比赛球队,主队 信息用红色显示,客队信息 用蓝色显示; 将决赛球队所有信息粗体、字体大小 为30pt显示,小组赛用斜体显示,将上述XML文档按要求显示,只能使用XSLT来转换显示XML文档,6,使用XSL显示XML文件,W3C组织推出XSL规范,包含一套元素集的XML语法规范来定义,把XML文档数据提取出来,转换成HTML或XML文档。 总体来说,XSL规范可以分为两大部分: XSL转换和XSL格式化对象,主要负责将XML源代码转化成为其他 的格式,即XSLT,采用XSL命名空间,提供大量的格式化命令,可用来 配合屏幕显示和打印要求,精确 地设

3、定外观。即FO,采用fo命名 空间,transformation,formatting,还有一个部分:XPath:识别、选择和匹配XML文档中的各种组成部分,7,XSLT概述,XSLT是一种将一个XML文档转换为其他结构化文档的语言。应用广泛,通常说的XSL都是指XSLT。,源文档,xml,文档树状结构,XSL文档,HTML文档 XML文档,XML解析器,XML处理器,遍历,源文档,目标文档,8,样式表是格式良好的 XML 文档。 样式表的顶层元素如下所示: 要使 XML 文档与 XSLT 规范相容,则需要将以下元素添加到 XML 文档中:, ,XSL 样式表的结构,样式表的根元素, ,指明

4、XSL 样式表的位置,9,文档树状结构,XML处理器把XML文档中的属性、名字空间、处理指令和注释等作为结点处理。 注:XSL有一个单独的根结点,它并不是XML的根元素,而是其父结点。 XSL处理器认定的结点类型包含以下7种: root comments elements processing instructions text namespaces attributes,区分根结点与根元素是为了读取和处理序言中的指令,10,示例,画出下列XML文档的树状结构,11,树状结构图,Root,Team,Team,(根元素),12,模板规则和模式,一个XSL文档包含一系列规则,其中包括模板规则(te

5、mplate rule) 一个模板规则有一个模式(pattern),该模式指定了它能够作用的树状结构,当模式匹配时就会按照模板规则输出。 XSL处理器在扫描XML文档时,依次遍历每一个结点。当处理器找到与模板规则中的模式相匹配的结点时,就会将模板规则应用于该结点。 使用处理指令xml-stylesheet将XSL文档与XML源文档关联,XSL文档以*.xsl扩展名,13,示例,关联,匹配规则 模板,匹配规则 模板,模式,模式,14,XSLT文档,XSLT文档的根元素是xsl:stylesheet元素,xsl:template元素表示模板规则,xsl:template元素的match属性表示模式

6、 xsl:stylesheet元素有两个必要的属性,version和xmlns:xsl,它们的值不能为空。,15,xsl:apply-templates元素、xsl:value-of元素和select属性,xsl:apply-templates元素采用递归的方式遍历指定结点的子结点。可以使用select属性,若没有出现select属性所有的子元素都会被选择。 xsl:value-of元素将源文档的结点值复制到输出文档中,可以使用select属性来确定复制哪个结点的值。,16,示例:匹配的过程-1,匹配过程,将根结点与样式表中的所有 模板规则进行比较,该结点 匹配第一个模板规则: xsl:tem

7、plate match=“/” 输出标记 xsl:apply-templates元素使得 处理器遍历xml文档中根结点 的子结点。 将根结点第一个子节点 xml-stylesheet进行匹配,没有 匹配,不产生任何输出。 根结点第二个子节点 Matches与模板规则匹配, 输出标记,17,匹配的过程-2,匹配过程, xsl:apply-templates元素使得处理器遍历xml文档中Matches的所有子节点 将Matches元素的第一个子元素Match与模板规则进行比较,有匹配 xsl:value-of元素将复制Match结点的Team子节点的值(Germany 4) 将Matches元素的

8、第二个子元素Match与模板规则进行比较,有匹配 xsl:value-of元素将复制Match结点的Team子节点的值(Italy 6) 输出标记,输出标记 处理完毕,运行结果:,如果与xsl:value-of所匹配的结点多于一个,则只显示第一个,18,结果?,19,xsl:for-each元素,xsl:for-each使xslt依次处理多个元素,由select属性值来确定依次要处理的xml文档中的元素。,20,匹配结点的模式,利用match、select结点的匹配: ,匹配根结点,匹配Matches的子结点 Match,21,可以忽略中间结点,选择一个特定类型的所有元素。匹配时不必考虑该结点

9、中间子结点、孙结点或级别更低的后代结点。,输出Matches的子元素及 Team元素的Name子元素 的内容,22,使用匹配属性结点,根据属性选择结点,必须在该属性名称前面加上符号作为前缀。,在默认情况下,处理器不会遍历属性结点,必须使用xsl:apply-template和一个相应的select属性来处理属性结点,23,示例,属性结点匹配,xsl:value-of select=“Type” 代替模板规则,结果,24,使用comments()匹配注释结点,如果没有明确指出,XSLT会完全忽略XML文档中的注释部分。使用comment()来选择注释。注意它不带参数。,25,注意,在浏览器上不显

10、示,26,使用processing-instruction()匹配处理指令结点,处理指令同样会被XSLT所忽略,用processing-instruction( 指令名)匹配处理指令。,27,使用或操作符|,XML文档树状结构中的一些不同类型结点使用相同的匹配规则,可以用”|”来实现。,28,使用 XPath进行测试,到目前为止,只是把结点的值显示在浏览器上。如果要想测试匹配结点更多的细节,可以使用 。,XPath表达式,XML路径语言,29,示例,30,XSL 模板 8-2,模式的内置模板规则:, ,元素节点和根节点的内置模板规则:, ,第1条模板规则:匹配所有元素节点和根节点,通知XSLT处理器依次处理当前节点集包含的所有子节点,第2条模板规则:匹配所有元素节点和根节点,但指定了mode属性,31,XSL 模板 8-3,文本节点和属性节点的内置模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论