《xsl样式显》PPT课件.ppt_第1页
《xsl样式显》PPT课件.ppt_第2页
《xsl样式显》PPT课件.ppt_第3页
《xsl样式显》PPT课件.ppt_第4页
《xsl样式显》PPT课件.ppt_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

XML显示技术之二 XSL及XPath,CSS的局限,CSS可以格式化XML文档,能够很好的控制输出的样式,比如色彩、字体、大小等,只能是文档的样式或外观。 CSS不能重新排序文档中的元素。 CSS不能判断和控制哪个元素被显示,哪个不被显示。 CSS不能统计计算元素中的数据。,可扩展样式表XSL,什么是XSL CSSHTML XSLXML,什么是XSL?,XSL(eXtensible Style sheet Language),可扩展样式表语言,是XML的首选样式表语言,它要比HTML使用的CSS复杂得多。 XSL是WWW协会推荐的一种标准。它包括3部分: 一个转换XML文档的方法; XSLT 一个定义XML部分和模式的方法; XPath 一个格式化XML文档的方法。 XSL格式对象,5.2.1 XSLT,XSL在转换XML文档时分为两个过程, 第一:转换文档结构; 其次:将文档格式化输出。 这两步可以分离开来并单独处理 第一步的转换过程,也就是XSLT。,XSLT处理器的工作,XSLT样式表,XML文档,MSXML解析器,XSLT树,源树,XSLT处理器,结果树,XSLT和CSS,XSL是由W3C制定 XSL通过XML定义,符合XML语法规则 XSL包括两部分: 第一部分描述如何将一个XML文档进行转换 第二部分定义格式对象(FO) 目前FO还不完善,但第一部分日臻成熟,已从XSL中分离出来,取名为XSLT 现在所说的XSL一般是指XSLT,XSL定义显示的基本思想,定义转换模板 将XML源文件转换为带样式信息的可浏览文档 最终的可浏览文档可以是HTML格式或其他格式 目前大多数情况下,转换为HTML文档来显示。,如何用XSL进行XML变换,XSL样式单有三种方式将XML文档变换成其他格式(HTML): (A)、XML文档和相关的样式单都是用于客户端的; (B)、服务器将XSL样式表单应用于XML文档,使其变换后,再将已变换的HTML文档发送到客户端; (c)、通过另外程序将原XML文档变换成HTML格式后,将此文档放置在服务器上。服务器与客户端都处理HTML文档。,5.2.3 XSL文档结构,XML声明,XSL声明,根元素,XSL命名空间,/1999/XSL/Transform 基于推荐标准 /TR/WD-xsl 基于工作草案,Stylesheet 元素,Stylesheet 元素是所有XSLT样式表的根元素。它是一个声明语句,通知浏览器这是一个样式表文件。 语法: 前缀xsl包含了XSLT的名称空间URI的引用,确保在XSLT样式表中使用的元素和属性都要依照W3C的规定标准使用。,简单XSL示例,浏览XSL文档,套用XSL显示XML文档,如何在XML文档中引用XSL文档? 实质上就是建立XSL样式表与XML文档的链接, 即在XML声明后加入PI指令:(同CSS) uri:yy.xsl或者http:/xxxx/xxx/xx/yy.xsl等形式,引用XSL的XML文档举例, 蓝蓝的天空 清清的湖水哎耶 绿绿的草原 这是我的家哎耶 奔驰的骏马 洁白的羊群哎耶 还有你姑娘 这是我的家哎耶 我爱你我的家 我的家我的天堂 ,不用XSL样式表的XML文档,套用XSL显示XML文档效果,XSL模板,模板是XSL样式表的最重要部分 模板就是XSL处理一个数据块的规则 其表示为一个xsl:template元素 模板规则将特定的输出与特定的输入相关联 模板通过match特性指定其应用于哪个节点,使用模板的优点: 如同程序设计中的模块化设计 有利于人员分工、协作,模板(template),模板规则由两部分组成:匹配模式(match pattern)和执行。两部分对应的语法为template和apply-templates。,XSL模板元素,定义一个模板 调用一个模板(函数调用) ,XSL模板示例 poem1.xml, 李白 静夜思 床前明月光,疑是地上霜。 举头望明月,低头思故乡。 王之涣 登鹳雀楼 白日依山尽,黄河入海流。 欲穷千里目,更上一层楼。 ,poem1.xsl,模板规则,一个xsl模板的定义 规则所匹配的节点 模板中执行何种脚本语言 使格式化引擎处理子节点 模板应用于所选元素 指定输出数据排列方式,XSLT元素及其说明,一个XSL实例(3.XSL), 认购信息 客户信息 客户姓名 账户代码 现住址 联系电话 ,XML文档套用XSL样式单, 张祥 A157109768 武汉大学樱园小区12号 87430070 刘娴 A142109760 华科大东二区28号 87409256 ,IE浏览效果,XSL的执行过程 当XML解析器解析XML文档时,首先遇到XML文档的根文档(由match属性值表示)时,需要执行这个模板,将前面的一些元素(HTML、HEAD、BODY等)写到输出文档中去,然后执行xsl:for-each指令,把处理的结果依次放入输出文档中。处理就结束了。,XSLT模板 模板就是要应用的规则 元素定义了用于进行转换的节点内容,其语法如下所示: 模板体 匹配属性(match)则用XPath表达式标识出源文档中的节点,交由模板处理 。,模板体 使用XPath从XML文档中选取出要进行操作的节点集,接着就需要使用XSL定义的元素来转换这些节点。,xsl:apply-templates(执行模板) 元素用在模板内告诉XSL处理器把所提供的节点集合匹配其他模板。 注意: (1)select属性用来定义匹配的节点名称,是可选的,默认值为node(),表示对当前节点的所有子节点执行该模板。,(2)xsl:apply-templates总是在xsl:templates元素中。 如: 表示处理根节点下所有的person元素 表示处理所有person下的子元素,XPath,XPath是定义XML文档各部分的语法 XPath使用路径定义XML元素 XPath定义了一个标准函数库 XPath是XSLT的一个主要元素 XPath不是用XML书写的 XPath是一个W3C标准,.XPath 简介,XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础。,.什么是XPath?,XPath 使用路径表达式在 XML 文档中进行导航 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。 XPath 包含一个标准函数库 XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值,日期和时间比较、序列处理、逻辑值等等。 XPath 是 XSLT 中的主要元素 XPath 是 XSLT 标准中的主要元素。如果没有 XPath 方面的知识,您就无法创建 XSLT 文档。 XPath 是一个 W3C 标准 XPath 于 1999年11月16日 成为 W3C 标准。 XPath 被设计供 XSLT、XPointer 以及其他 XML 解析软件使用。,.XPath 节点,在XPath中,有七种类型的节点:元素、属性、文本(包括一组字符数据,即CDATA包含的字符)、命名空间、处理指令、注释以及文档节点(根节点)。 XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。 根节点包含两个子节点:根元素和xml-stylesheet处理指令。根元素是节点树中的第一层子节点。,.节点关系,父(Parent) 每个元素以及属性都有一个父。 子(Children) 节点元素可有零个、一个或多个子。 同胞(Sibling) 拥有相同的父的节点 先辈(Ancestor) 某节点的父、父的父,等等。 后代(Descendant) 某个节点的子,子的子,等等。,.XPath 语法,XPath使用路径表达式来选取XML文档中的节点或节点集。 节点是通过沿着某个路径(path)或者步(step)来选取的。,1.5.1位置路径表达式,绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割: 绝对位置路径: /step/step/. 相对位置路径: step/step/.,.选取节点,Demo:,.谓语(Predicates),.选取未知节点,.选取若干路径,定位路径,这是XPath中一类重要的表达式 其功能是从上下文节点中选择相关节点集合 定位路径分两类: 相对定位路径:child:PEOPLE/descendant:PERSON 绝对定位路径: child : sectionattribute : para,定位阶,定位路径由一个或多个定位阶组成 child :paraposition()=last() 本例选择当前节点下最 后一个名为para的子元素,轴,节点测试,谓词,轴(Axis),Child:子轴,简写为”/” Descendant:后代轴,简写为”/” Self:自身轴,简写为”.” Parent:父轴,简写为” Attribute:属性轴,简写为” Ancestor:祖先轴,轴的定位示例,“/mydoc/part-nbr” 选择带有元素类型名称part-nbr的所有元素节点,它们属于mydoc文档元素的后代;即文档中的所有part-nbr元素。 “/confidential/“ 为特定属性confidential搜索整个文档,然后,找出该属性附加在何种元素上。,节点测试(node test ),节点测试是对轴所对应的节点集合进行测试,以判断是否有合适的节点。 节点测试包括名称测试、节点类型测试和处理指令测试。 node()用于任意类型的节点测试 text()测试文本节点 comment()用于选取注释节点 processing-instruction()所有处理指令节点,谓词(predicate ),使用任意表达式进一步更新由定位阶选择的节点集 ,其目的是过滤掉某些节点集合。 其语法为: Expression 示例: child:itemposition()=3 选择item子元素集合中第3个item子元素。可以简写为item3,.XPath Axes(坐标轴),Demo:,.XPath 运算符,.XPath函数,.XPath函数续1,.XPath函数续2,.XPath函数续3,XPath应用示例,要进行定位操作的XML文档: ,XSL元素的使用,(1)xsl:value-of元素,通过XSL可访问XML文档中元素及其属性,其语法为: 访问XML文档元素的属性值时,其语法为: ,使用xsl:value-of获得元素值(节点值),该元素获得指定节点的值并输出,其select属性用来设置匹配模式。该模式为XPath表达式。, 李白 太白 关山月 明月出天山,苍茫云海间。 长风几万里,吹度玉门关。 汉下白登道,胡窥青海湾。 由来征战地,不见有人还。 戍客望边色,思归多苦颜。 高楼当此夜,叹息未应闲。 ,编写一个xsl文档: ,这里 表示输出XML文档中的所有元素的值。, 李白 太白 关山月 明月出天山,苍茫云海间。 长风几万里,吹度玉门关。 汉下白登道,胡窥青海湾。 由来征战地,不见有人还。 戍客望边色,思归多苦颜。 高楼当此夜,叹息未应闲。 ,输出匹配节点的值:, jack 28 ,XML文档:,编写xsl文档:, jack 28 ,使用xsl:value-of获得属性值, 网络应用技术 13.2 局域网组建技术 25.5 ,编写xsl文档:,表示匹配所有book元素的ID属性。,一个综合应用:, 张三 男 1977.5 数据库设计与维护、WEB开发 李四 男 1979.12 UML、C Sharp、XML , 技能 , 姓名 性别 生日 ,语法为: 访问内容 ,(2)xsl:for-each元素 允许循环处理被选择的节点。,循环选择数据多条数据, tom 28 张三 30 李四 41 ,只能显示第一条件记录值。,如果显示所有元素,第一种办法: 采用xs:apply-templates,第二种方式:采用xsl:for-each,例子:, 王维 竹里馆 独坐幽篁里,弹琴复长啸。深林人不知,明月来相照。 孟浩然 宿建德江 移舟泊烟渚,日暮客愁新。野旷天低树,江清月近人。 王之涣 登鹳雀楼 白日依山尽,黄河入海流。欲穷千里目,更上一层楼。 ,对XML源文件中元素排序,其语法为: order-by “元素名”, 张祥 A157109768 武汉大学樱园小区12号 87430070 1000 刘娴 A142109760 华科大东二区28号 87409256 2000 ,对XML元素排序示例, 认购信息 客户信息 客户姓名 账户代码 所持股数 现住址 联系电话 ,XSL中的条件语句,:用于实现简单的条件判断 简化的语法表达式: 转换内容 转换内容是一个模板,测试条件满足,则处理器实例化模板,若测试不满足,XSL处理器忽略本语句,继续处理结束标记后的语句。,当test属性的值为元素名称, 李华 92 倪冰 89 张三 98 杨惠 85 ,当test属性的值为元素内容:,匹配的条件为元素指定的内容。, 他是最高分 ,当test属性的值为属性值:,匹配的条件为元素指定的属性值。, 李华 92 倪冰 89 张君宝 98 杨惠 85 , 学号为103的学生存在 ,当test属性的内容带有函数:,条件测试示例, 张祥 10000 8000 15000 6000 刘娴 5000 12000 9000 4000 ,本例对一个持股信息的结构化数据进行处理: 要求对高于一定持股数额的数据用不同颜色显示。,带有条件语句的XSL文档, 持股信息 , 部分持股信息统计表(单位:股数) 客户姓名 武商股份 神龙电业 浦发银行 兴和基金 , =8000“ color:red ,IE游览显示结果,多重条件判断元素,多重条件判断语法为: ,可使用多个 xsl: when 分别设置多重条件.,多重条件测试示例, 张祥 10000 8000 15000 6000 , 刘娴 5000 12000 9000 4000 赵洋 1000 2000 8000 10000 ,带有多重判断的XSL文档, 客户信息 客户姓名 武商股份 神龙电业 浦发银行 兴和基金 , 风险投资人: 保守投资人: 未知投资人: ,IE浏览效果,综合应用, XML技术及应用 40 孙更新 宾深 , 操作系统教程 30 汤子瀛 汤小丹 ,要求作者之间用,号隔开。, , books at cybershoppe book at cybershoppe book id titile rate author(s) ,XSL元素的创建,用XSL创建XML元素 新建元素的内容 ,用XSL增加新元素示例, 歌词(略) , 蓝蓝的天空 清清的湖水哎耶 绿绿的草原 这是我的家哎耶 奔驰

温馨提示

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

评论

0/150

提交评论