XML实用教程第5章.ppt_第1页
XML实用教程第5章.ppt_第2页
XML实用教程第5章.ppt_第3页
XML实用教程第5章.ppt_第4页
XML实用教程第5章.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/12/6,1,XML实用教程 第5章,配合例子源代码一起使用,Power point 制作:耿祥义 张跃平,XML与XSL,2020/12/6,2,本章主要内容 XSL样式表文件与XSL变换 XSL样式表文件中的模板 标记与模板匹配 模板调用 常用XSL标记 难点 模板调用,第5章 导读,2020/12/6,3,概述,XML关心的是数据的结构,并能很好、方便地描述数据。但是,数据的显示外观也是很重要的一个方面,XML能有效地分离数据结构和数据显示,W3C为XML数据显示发布了两个建议规范CSS(层迭样式表)和XSL(可扩展样式语言),上章重点讲述怎样用CSS显示XML标记中的文本内容

2、,本章讲述XSL。XSL提供了比CSS更强大的显示数据的能力,利用XSL可以为XML提供像HTML那样美观的数据显示。,2020/12/6,4,5.1.1 初识XSL样式表文件,5.1 XSL样式表文件与XSL变换,为了使用XSL语言为XML提供显示数据的外观,其关键点是编写一个称作XSL样式表的文件,简称XSL文件。 XSL样式表文件是由一些特殊的标记构成的文本文件,浏览器通过处理这些特殊的标记来显示XML文件中数据。,2020/12/6,5,5.1.2 XML关联XSL文件,XML文件需使用使用操作指令: 将XML文件和XSL样式表关联。 例题5-1 p85,2020/12/6,6,5.1

3、.3 XSL变换与HTML,XSL处理器把XSL样式表文件转化为HTML文件的过程称做XSL变换(XSL Tranformation,XSLT)。 IE5.5(以上版本)带有XSL处理器。 通过关联XSL样式表,XML有效地分离了数据的结构和数据的显示 ,步骤如下: 1.首先针对XML文件编写XSL样式表文件。 2.将XML文件和XSL样式表关联。 3.将XSL样式表转化为HTML文件(浏览器内置的XSL转化器负责)。,2020/12/6,7,5.2 XSL样式表文件中的模板,XSL样式表是扩展名为“.xsl”的文本文件,和XML文件类似,XSL文件的内容也是由标记及其内容组成,只不过按着W3

4、C规范,这些标记都有着特殊的意义 . XSL样式表的目的是为和其关联的XML文件提供数据显示的外观,为了不引起混淆,我们将XSL样式表中的标记称做XSL标记、将XML文件中的标记称做XML标记 。 XSL样式表文件也必须有XML声明,且与其关联的XML文件有着同样的编码,例如: XSL样式表文件的根标记的名称必须是stylesheet,如果准备让浏览器的XSL处理器来实现XSL变换,根标记必须有名称空间,例如: 根标记的内容. ,2020/12/6,8,5.2.1 模板,样式表的基本结构就是由标若干个称做“模板”的XSL标记组成,简称模板。模板都是根标记的子标记,模板标记的名称都是“templ

5、ate”,例如: 模板内容 一个模板的“模板内容”是由HTML标记和嵌入其中的XSL标记组成。 模板必须有属性match,该属性的值是一个特殊的字符串,称做模板的“标记匹配模式”。 如果XML文件中的一个XML标记匹配于XSL样式表文件中的某个模板的“标记匹配模式”,就称该模板是XML标记匹配的模板或称XML标记与该模板相匹配。,2020/12/6,9,5.2.2 主模板与XSL处理器_1,1.主模板:在模板中有一个称作“主模板”的特殊模板,该模板中的match属性的值是“/”,如下所示: 主模板的内容 一个XSL样式表文件有且仅有 一个主模板,所谓主模板就是与 XML文件中根标记匹配的模板。

6、 例题5-2 p88,2020/12/6,10,5.2.2 主模板与XSL处理器_2,2.XSL处理器:XSL处理器 总是从主模板开始实施 XSL变换。主模板的内 容中可以包括调用其它 模板的“模板调用”标记。,2020/12/6,11,5.3 标记与模板匹配,XSL样式表文件中的模板的格式中涉及到“标记匹配模式”,如下所示: 模板内容 “标记匹配模式”就是满足一定条件的一族XML标记,其中的每个XML标记都称做与“标记匹配模式”相匹配的XML标记。如果XML文件中的一个XML标记是模板的“标记匹配模式”的一个实例,就称该标记是与模板相匹配的XML标记,或称模板匹配于该XML标记。 XSL处理

7、器在工作中经常要处理“标记匹配模式” 。,2020/12/6,12,5.3.1 XML子标记匹配的模板,XSL样式表为XML文件中根标记的子标记提供输出数据的模板,这类模板中的“标记匹配模式”可以是子标记的名字或根标记的名字和子标记的名字用“/”分割。 假如XML文件的根标记的名字是student,它有name,sex和birthday三个子标记,那么下列三个模板分别是这三个子标记相匹配的模板: (1) (2) 模板的内 容模板的内容 (3) 模板的内容 而下列模板是与三个子标记:name,sex和birthday都相匹配的模板: 模板的内容 ,2020/12/6,13,5.3.2 任意级别X

8、ML子标记匹配的模板,通过使用统配符“*”可以建立匹配于任何标记的模板,无论该标记是根标记的第几级子标记。下列模板: 模板的内容 是与根标记student的所有2级子标记(孙标记)相匹配的模板。 更多的与各级标记相匹配的模板举例如91页。 XML文件的标记是树型结构,使用“/”分割符必须从根标记出发才能确定出一类标记。 例题5-3 p92,2020/12/6,14,5.3.3 具有指定属性的XML子标记匹配的模板,通过使用“标记属性”或“标记属性=属性值”可以建立与具有指定属性的标记相匹配模板,这样,我们就让名字相同但属性不同的标记匹配于不同的模板。 下列模板: 模板的内容 是与名字为name

9、且具有属性ID的标记相匹配的模板,无论name标记是根标记的哪一级子标记。 例题5-4 p94,2020/12/6,15,5.3.4 使用“”和“|”给出XML标记匹配的模板,可以使用“ ”来给出一个标记需满足的条件,例如: 模板的内容 是与名字为book且具有子标记price的标记相匹配的模板,无论book标记是根标记的哪一级子标记。 可以使用“|”给出几个可以选择的标记,例如: 模板的内容 是与标记名字为“单价”、“库存量”或“生产日期”等标记相匹配的模板,无论这些标记是根标记的哪一级子标记。,2020/12/6,16,5.4.1 模板调用标记,5.4 模板调用,1.带select属性的模

10、板调用标记。 称 是有条件的XSL模板调用标记。例如: 2不带select属性的模板调用标记 称 是不带select属性的模板调用标记。由于该模板调用标记中没有“标记匹配模式”,所以不带参数select的模板调用标记需要作为“xsl:for-each”标记的子标记来使用,例如: ,2020/12/6,17,5.4.2 模板调用标记的执行过程_1,1.对于带select属性的模板调用标记,XSL处理器首先根据 中的“标记匹配模式”到XML文件中寻找所有和“标记匹配模式”匹配的标记,然后,逐个地为这些标记到XSL样式表中寻找匹配的模板,一旦找到匹配的模板,就对该模板的内容实施XSL变换,并将变换后

11、的文本嵌入到HTML文件中.,2020/12/6,18,5.4.2 模板调用标记的执行过程_2,2.对于不带select属性的模板调用标记,应当作为“xsl:for-each”标记中的子标记来使用: 其它内容 其它内容 XSL处理器首先根据“模板调用标记,就将该模板标记按着下列带select属性的来处理: 然后,再寻找下一个和“标记匹配模式”匹配的标记,直到没有匹配的标记为止。XSL处理器将依次将“xsl:for-each”标记变换后的内容嵌入到HTML文件中。 例题5-5 p96,2020/12/6,19,5.5 常用的XSL标记,样式表的基本结构就是模板,模板也是一种标记,模板中有一个重要

12、的参数就是“match”,该参数的值决定了哪些XML标记和该模板相匹配,关于“match”的取值和作用我们在5.3做了详细的介绍。 例题5-6 p98,2020/12/6,20,5.6 xsl:for-each的用法,“xsl:for-each”XSL标记的格式如下: 内容 该XSL标记必须在模板中使用。XSL处理器根据“xsl:for-each”标记中的中的“标记匹配模式”到XML文件中寻找第一个与“标记匹配模式”匹配的XML标记,一旦找到这样的XML标记就对“xsl:for-each”标记中的“内容”实施变换,并将变换后的内容嵌入到HTML文件中。然后,再寻找下一个和“标记匹配模式”匹配的

13、XML标记,直到没有匹配的标记为止。 例题5-7 p99,2020/12/6,21,5.7 xsl:value-of的用法,“xsl:value-of”XSL标记的格式为 该XSL标记必须在模板中使用,即作为模板的子孙标记。当“标记匹配模式”是特殊的“.”时,可以将 简写为 XSL处理器将“xsl:value-of”标记变换为和“标记匹配模式”相匹配的XML标记及其子孙标记的文本内容。 对于下列模板: 其中的将被变换为“张三”标记及其子标记的文本内容,张三一定是“大学生”的子标记。 将被变换为“大学生”标记及其子标记的文本内容。 例题5-8 p101 ,例题5-9 p102,2020/12/6

14、,22,5.8 xsl:copy的用法,“xsl:copy” XSL标记的格式为或 文本内容 该XSL标记必须在模板中使用,即作为模板的子孙标记 。 “xsl: copy”的作用是获取和它的父标记中“标记匹配模式”匹配的XML标记的名称及标记符号。也就是说,如果一个XSL标记中有“标记匹配模式”,那么我们可以将“xsl: copy”做为子标记,以便获得和“标记匹配模式”匹配的XML标记的名称与符号。 例题5-10 p104,2020/12/6,23,5.9 xsl:if的用法,“xsl:if” XSL标记的格式如下: 标记内容 该XSL标记必须在模板中使用,即作为模板的子孙标记。,2020/1

15、2/6,24,5.9.1 属性条件,如果想判断和“.”匹配XML标记是否有某个属性(不管属性值如何),就可以使用“xsl:if”标记的下列格式: 内容 ,2020/12/6,25,5.9.2 属性值条件,如果想判断和“.”匹配XML标记是否有某个属性,并判断该属性值和某个特定属性值进行“关系比较”后的结果是否为真,就可以使用“xsl:if”标记的下列两种格式。 格式1 内容 格式2 内容 ,2020/12/6,26,5.9.3 子标记条件,如果想判断和“.”匹配XML标记是否有某个子标记,就可以使用“xsl:if”标记的下列格式: 内容 ,2020/12/6,27,5.9.4 子标记及属性条件

16、,如果想判断和“.”匹配XML标记是否有特定属性的子标记,就可以使用“xsl:if”标记的下列格式: 内容 ,2020/12/6,28,5.9.5 子标记及属性、属性值条件,如果想判断和“.”匹配XML标记是否有特定属性的子标记、并且需要判断子标记的属性值和某个特定属性值进行“关系比较”的结果是否为真,就可以使用“xsl:if”标记的下列2种格式: 格式1 内容 格式2 内容 例题5-11 p107,2020/12/6,29,5.10 xsl:choose的用法,“xsl:choose”标记必须在模板中使用,相对“xsl:if ”标记,“xsl:choose”标记可以给出多个判断条件。“xsl:choose”标记必须配合“xsl:when”和“xsl:otherwise”标记使用,将二者作为“xsl:choose”标记的子标记。 “xsl:choose”标记的格式如下: 内容 内容 内容 例题5-12 p109,202

温馨提示

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

评论

0/150

提交评论