第5章XSL转换XML文档_第1页
第5章XSL转换XML文档_第2页
第5章XSL转换XML文档_第3页
第5章XSL转换XML文档_第4页
第5章XSL转换XML文档_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第5章章 XSL转换转换XML文档文档XML关于文档浏览的基本思想是将数据与数据的显示分别定义。这样一来,XML格式文档不会重蹈某些HTML文档结构混杂、内容繁乱的覆辙,XML的编写者也可以集中精力于数据本身,而不受显示方式的细枝末节的影响。定义不同的样式表可以使相同的数据呈现出不同的显示外观,从而适合于不同应用,甚至能够在不同的显示设备上显示。这样,XML数据就可以得到最大程度上的重用性,满足不同的应用需求。XML数据的显示可以采用CSS和XSL样式文件实现。2本章知识要点本章知识要点: 掌握XSL的基本概念 熟练掌握XSL转换原理 掌握XSL文档创建和使用 了解CSS和XSL的区别 掌

2、握XSL模板规则和调用 熟练掌握不同的方式选择节点 掌握XSL常见的控制指令 熟练掌握XSL与CSS的结合使用35.1 XSL介绍介绍 XSL是专门针对于XML文档的样式提出来的一种规则,使XML文档得到更加有效的表现形式,XSL文档实际上是XML文档的一种延伸,是依据XML制成的样式语言。通过XSL文档可以对XML进行样式设置、计算、整理和排序等,XSL比CSS要复杂的多。5.1.1 XSL概念概念 XSL是为XML的样式显示设计的语言,该语言定义一系列的元素集的XML的语法规范,该语法规定可把XML文件转换成HTML、XML或其他的文档。一个XSL的样式表单里面包含的是多个设计规则,显示方

3、式,从XML文档中提出来的数据依据这个样式表单规定显示方式显示,形成一个新的文档。这种转换采用公开的方式,使其更加容易、方便的程序员使用。XSL还提供多种脚本语言的通道,可以满足语言对其的操作,以满足更为复杂的应用需求。XSL是一种新的标记语言,它的可扩展性,使得它可以控制出现的标记。45.1.2 XSL转换原理转换原理 XSL工作原理就是把XML文档作为一个存储数据的树来看待,称它为源树。XML文档的根元素和子元素可以看作是树节点。XSL就是把这些存放数据根据我们自己的需要从XML树中提去出来,组成一个新的树,也就是结果树。结果树和源树是独立存在的,对结果树中的数据操作不会影响到源树中的数据

4、,XSL正是通过这种方式实现了数据和表示分离的目的。而XSL提取数据的工具就是XSL处理器,XSL处理器首先根据要找的节点在源树中寻找,其寻找方式就是上面描述的情形。数据提取到之后,就到XSL文档中,找到与这个节点匹配的样式定义。按定义好的样式显示数据,即形成了一个新的文档树。55.1.3 XSL文档创建与应用文档创建与应用 XSL是基于XML的语言,即XSL文件是一种格式良好的XMI文件,因此它和XML文件在语法上是一致的。事实上,由于XML是元语言,所以它具备描述其他语言的能力,或者说它可以通过XML来制定另一种语言。XSL就是用XML来描述的一种使用于定义样式的语言,并且XSL所定义的样

5、式专门用于XML文档。因此,所有的XSL文件都应该是格式良好的XML文件,只不过XSL文件的扩展名是“xsl”,而不再是“xml”。65.1.4 XSL与与CSS比较比较 XSL可以非常容易的操作。XSL采用了和CSS文档处理样式的不同方法。它能将一种格式XML文档转换成另外一种,可以满足服务器针对不同的用户显示不同的样式。XSL的另外一个特点就是支持中文,在CSS的编写中,CSS不支持中文。这对于喜欢使用中文的用户,是更有理由使用XSL。而XSL虽然功能强大,学习和理解起来比较难,并且因为要重新索引xml(标准化越来越近了)结构树,所以消耗内存比较多。75.2 XSL模板模板 XSL样式表单

6、是由一个或多个被称为“模板”的规则集组成的。每个模板都包含了与每一个指定节点相匹配的应用规则。模板规则包含两个部分:模式(pattern)和模板(template)。模式用于在源文档中匹配(定位)节点,模板定义节点的处理规则,通过模板的实例化来组成结果树的一部分。85.2.1 XSL模板规则模板规则 XSL样式表单的扩展名是“.xsl”的文本文件,和XML文档类型,XSL样式表单的内容也是有标记及其内容组成,只不过按照W3C规范,这些标记都有着特殊的意义,以便XSL处理器可以处理它们。XSL样式表单遵守和XML一样的语法要求,它必须是规范的。 XSL样式表单的目的是为和其关联的XML文件提供数

7、据显示的外观,这样,XSL样式表单中的标记就经常要和XML文件中的标记发生联系,为了不引起混乱,我们将XSL样式表单中的标记称为XSL标记,将XML文件中的标记称为XML标记。95.2.2 XSL模板调用模板调用 元素用于告诉XSL处理器处理当前节点的所有子节点。在转换XML文档时,往往需要递归处理文档树中每一个节点,可以使用完成这个操作。在模板规则的模板中使用元素,告诉XSL处理器将匹配的节点每一个节点(包括文本节点)与样式表中的模式规则进行比较,如果找到了匹配的模板规则,那么就可以为匹配的节点输出模板。当然了,在匹配的节点模板中还可以再包含元素,从而通知处理器处理该节点的所有子节点,这样依

8、次调用,就可以完成对文档树中所有节点处理。10115.3 XSL节点选择节点选择 “标记匹配模式”就是描述该模板适用于那个标记,也可能有多个标记。“标记匹配模式”就是满足一定条件的一组XML标记,其中每个XML标记都称作匹配模式的XML标记。实际上“标记匹配模式”就是告诉模板如何在XML文档中选择节点。125.3.1 使用元素名选择节点使用元素名选择节点 在XML文档中,根标记的子标记是很重要的类别,XSL应该能为这类XML标记设定显示的样式,即相匹配的模板。这些模板中的“标记匹配模式”(XML标记的路径信息)可以是子标记的名字或根标记的名字。XSL处理器会根据match属性提供元素名称,去X

9、ML文档中提取该节点的数据。5.3.2 使用路径选择节点使用路径选择节点 上一个小节中,我们直接通过了元素名称匹配了模板,实际上也可以通过详细的路径信息选择节点。即模板中的“标记匹配模式”(XML标记的路径信息)可以有子标记名称、根标记名称、斜杠(/)或双斜杠(/)共同组成。135.3.3 使用匹配符选择节点使用匹配符选择节点 对于不同的标记,路径写法也不完全相同,其路径信息中可以包含相应的匹配符。通过使用匹配符“*”可以建立匹配任何标记的模板,无论该标记是根标记的几级子标记。例如,“”表示匹配任何元素,“”表示匹配【员工列表】元素节点的任意子节点的子节点。145.3.4 使用元素属性选择节点

10、使用元素属性选择节点 通过使用“标记属性 ”或“标记属性属性值”,可以建立匹配具有指定属性的标记的模板。起到一个筛选的作用,若只需要为某个带有属性的标记创建模板,该模板的标记匹配模式可以通过上面的形式指定。155.3.5 使用附加条件选择节点使用附加条件选择节点 可以使用“”来给出一个标记需满足的条件,即可以更精确的匹配某一个节点。例如模板的内容。标记匹配模式后的路径信息表明该模板是名字为goods且具有子标记price的标记的匹配模板。使用“|”给出几个可以选择的标记,例如表明该模板是标记名字为“单价”,“库存量”和“生产日期”等标记的匹配模板,无论这些标记在根标记的哪一级子标记。165.4

11、 XSL控制指令控制指令 XSL文件实质上是XML文档,有HTML和XSL标记组成,只不过这些标记能够被XSL处理识别。XSL标记对输出的数据进行筛选和判断,从而达到过滤数据的目的。175.4.1 简单判断指令简单判断指令 script表示是否使用脚本程序;language表示脚本程序使用的语言的种类;test属性是该标记最重要的属性,用来设置标记过滤的条件。只有当test设置的条件成立的时候,XSL处理器才会执行标记下面的指令,当条件不满足的时候,不执行下面的指令。185.4.2 多条件判断指令多条件判断指令 在元素只有两种选择,而如何要有多种选择单靠一个元素就不能胜任了,就是在多种条件中进

12、行判断选择的。包含了一组元素,在test中属性中将规定各种条件,在测试时将从顶至底依次匹配直到找到满足的条件。如果所有的 元素都不满足要求,则应用元素。195.4.3 循环处理指令循环处理指令 内容标记主要用来获得指定XML文档中某个标记,并将定义的样式作用在该标记的上面。当XML文件中出现了两条以上名字相同的标记所定义的数据时,我们必须先用指定同名标记后,才能通过来提取各个同名的标记。该标记在XSL文件中可以多次的使用。205.4.4 输出内容的排序输出内容的排序 总是作为元素 或元素 的子元素,包括select、lang、data-type、order、case-order等几个可选属性。在XSLT中可以对XML源文档的元素进行重新排序,排序的语法就是xsl:sort。215.5 XSL应用实例应用实例 XML文件的所有表现信息多发放在了XSL样式表单文件当中。XSL文件全权负责XML源文件的表现形式。

温馨提示

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

评论

0/150

提交评论