




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 4 6 第4章XML的样式单XSLT 1 第4章XML的样式单XSLT 2020 4 6 第4章XML的样式单XSLT 2 本章从XSLT样式单的创建开始 介绍XML节点的输出 样式模板的创建和应用规则 样式单中的批处理方法以及各节点的条件处理等内容 详细讨论如何运用可扩展样式表语言编写各种XML样式单 使XML文档全部或部分地以希望的样式显示在Web浏览器中 2020 4 6 第4章XML的样式单XSLT 3 4 1XSLT概述 本章学习怎样将XML文档显示在Web浏览器中 XML文档的最终目标是作为一个信息的基类型来存储信息 再转换成不同的格式用于各种应用 W3C提出了可扩展样式表语言规范来实现上述目的 XSL eXtensibleStylesheetLanguage 分为两个部分 XSLT XSL转换 和XSL FO XSL格式对象 本章只对XSLT进行学习 XSL是用于XML文本的转换和格式化的标准语言 2020 4 6 第4章XML的样式单XSLT 4 XSLT的工作原理是 1 首先必须要有一个XSLT处理器来扫描整个XML文档 将其转化成一个节点树 2 在将XML文档映射到节点树后 XSLT处理器使用XSLT样式表处理各个节点 在XSLT样式表中 templates 模板 规定了如何转换XML文档 它有两部分组成 节点标签和指令 前者表示将模板应用到XML文档的哪一个 哪一些 节点上 后者规定如何对XML文档进行转换 3 最后 利用Web浏览器进行处理 可以把XML转换成HTML XHTML 按照所需的样式显示出XML文档的内容 2020 4 6 第4章XML的样式单XSLT 5 补充内容 XPath 在使用XSLT对XML文档进行处理的过程中 需要使用XPath来进行导航 XPath使用路径表达式来选取XML文档中的节点或者节点集 这些路径表达式和我们在常规的计算机文件系统中看到的路径表达式非常相似 概念1 节点 node 在XPath中 有七种类型的节点 元素 属性 文本 命名空间 处理指令 注释以及文档 根 节点 XML文档是被作为节点树来对待的 树的根被称为文档节点或者根节点 2020 4 6 第4章XML的样式单XSLT 6 请看下面这个XML文档 HarryPotterJK Rowling200529 99上面的XML文档中的节点例子 JK Rowling 元素节点 lang en 属性节点 2020 4 6 第4章XML的样式单XSLT 7 概念2 基本值 或称原子值 Atomicvalue Atomicvaluesarenodeswithnochildrenorparent 基本值是无父或无子的节点 基本值的例子 JK Rowling en 概念3 项目 Items Itemsareatomicvaluesornodes 项目是指基本值或节点 2020 4 6 第4章XML的样式单XSLT 8 RelationshipofNodes节点之间的关系Parent 父Children 子Eachelementandattributehasoneparent Elementnodesmayhavezero oneormorechildren 每个元素和属性都有一个父亲 元素节点可以有0个 1个或多个子节点 HarryPotterJK Rowling200529 99 2020 4 6 第4章XML的样式单XSLT 9 Siblings 兄弟Nodesthathavethesameparent 拥有相同的父节点的节点称之为兄弟 在前面的例子里 title author year和price都是兄弟 Ancestors 祖先Anode sparent parent sparent etc 一个节点的父亲 父亲的父亲及更多称为该节点的祖先 2020 4 6 第4章XML的样式单XSLT 10 HarryPotterJK Rowling200529 99title的 祖先 是book和bookstore 2020 4 6 第4章XML的样式单XSLT 11 Descendants 后代Anode schildren children schildren etc 节点的子节点 子节点的子节点及更多节点称为后代 在下面的例子里 bookstore的后代是book title author year 和price元素 HarryPotterJK Rowling200529 99 2020 4 6 第4章XML的样式单XSLT 12 XPath的语法 XPath使用路径表达式来选取XML文档中的节点或节点集 节点是通过沿着某条路径 path 来选取的 首先看一个例子 HarryPotter29 99LearningXML39 95 2020 4 6 第4章XML的样式单XSLT 13 1 SelectingNodes 选取节点下面列出了最常使用的路径表达式情况 2020 4 6 第4章XML的样式单XSLT 14 结合前面的例子 在下面的表格中 我们列出了一些路径表达式及其运行的结果 2020 4 6 第4章XML的样式单XSLT 15 2 Predicates 限定条件判断词判断式Predicatesareusedtofindaspecificnodeoranodethatcontainsaspecificvalue 它指定了选取节点的范围 Predicatesarealwaysembeddedinsquarebrackets 总是使用方括号 来指定限定条件 2020 4 6 第4章XML的样式单XSLT 16 2020 4 6 第4章XML的样式单XSLT 17 3 SelectingUnknownNodes 选取未知节点XPathwildcardscanbeusedtoselectunknownXMLelements 可以通过XPath通配符选取未知的XML元素 2020 4 6 第4章XML的样式单XSLT 18 在下面的表格中我们列出了一些表达式及其运行结果 2020 4 6 第4章XML的样式单XSLT 19 4 SelectingSeveralPaths 选取多个路径Byusingthe operatorinanXPathexpressionyoucanselectseveralpaths 可以通过在表达式中添加 来选取多个路径 2020 4 6 第4章XML的样式单XSLT 20 XPathAxes 轴 我们通过下面的例子讲解本部分 HarryPotter29 99LearningXML39 95 2020 4 6 第4章XML的样式单XSLT 21 1 XPathAxesAnaxisdefinesanode setrelativetothecurrentnode 轴用于定义与当前节点相关的节点集 2020 4 6 第4章XML的样式单XSLT 22 2020 4 6 第4章XML的样式单XSLT 23 2 LocationPathExpression 位置路径表达式Alocationpathcanbeabsoluteorrelative 路径表达式可以使用绝对路径也可以是相对路径 Anabsolutelocationpathstartswithaslash andarelativelocationpathdoesnot Inbothcasesthelocationpathconsistsofoneormoresteps eachseparatedbyaslash 绝对路径表达式以 开始 两种路径表达式都包含一个或多个Locationstep 用 分隔 绝对路径 step step 相对路径 step step 2020 4 6 第4章XML的样式单XSLT 24 LocationStep包括 Anaxis definesthetree relationshipbetweentheselectednodesandthecurrentnode 轴 定义了选择的目标节点与当前节点间的关系 Anode test identifiesanodewithinanaxis 节点测试 确定轴内的一个结点 zeroormorepredicates tofurtherrefinetheselectednode set 0个或多个限定条件 进一步限定被选择的节点集 2020 4 6 第4章XML的样式单XSLT 25 LocationStep的语法为 axisname nodetest predicate 2020 4 6 第4章XML的样式单XSLT 26 XPath操作符 AnXPathexpressionreturnseitheranode set astring aBoolean oranumber XPath表达式返回值可以是 节点集 字符串 逻辑值 数字 下面给出了XPath表达式所支持的所有操作符 2020 4 6 第4章XML的样式单XSLT 27 2020 4 6 第4章XML的样式单XSLT 28 2020 4 6 第4章XML的样式单XSLT 29 XPath学习资源 2020 4 6 第4章XML的样式单XSLT 30 4 2XSLT样式表的创建和输出 首先看一下XSLT样式表的基本格式 从以上格式不难看出 XSLT样式表本身也是一个XML文档 2020 4 6 第4章XML的样式单XSLT 31 例4 2是濒危动物案例的XML文档 例4 3是一个XSLT样式表 从4 2的文档中提取出部分数据进行显示 例4 3中斜体部分用来提取元素endangered species里第一个animal元素中 属性language为English的元素name的值 即为Tiger 其中 元素表示选取的是指定节点的值 属性select用来选取指定的节点 2020 4 6 第4章XML的样式单XSLT 32 4 3模板的创建与应用 在用XSLT样式表对XML文档进行转换时 XSLT处理器首先去寻找与XML文档根节点相匹配的模板 在每一个XSLT样式表中都会有一个应用到根节点 指XML文档根 不是指根元素 的模板 如例4 4 2020 4 6 第4章XML的样式单XSLT 33 例子中的元素是用于创建模板的 match属性的作用是使模板和某个XML元素相结合 match属性也可以为整个XML文档定义模版 match match属性值是一个XPath表达式 2020 4 6 第4章XML的样式单XSLT 34 例4 5 在模板中应用匹配子元素的模板 2020 4 6 第4章XML的样式单XSLT 35 注意 如果在应用模板时 不使用属性select 那么处理器将寻找并应用所有匹配当前节点子节点的模板 2020 4 6 第4章XML的样式单XSLT 36 4 4批量处理 元素也可以用来依次处理节点 与元素是两种不同的方法 但它们的输出结果是相同的 TheXSLelementcanbeusedtoselecteveryXMLelementofaspecifiednode set XSL元素的作用是 选择特定节点集合中的所有节点 依次进行处理 通过例4 6来说明xsl for each的用法 2020 4 6 第4章XML的样式单XSLT 37 4 5各节点的条件处理 XSLT规范允许带条件地处理节点 这一特性类似于编程语言中的if语句 本节学习有条件地进行节点处理 例4 7 有条件地进行节点处理 2020 4 6 第4章XML的样式单XSLT 38 思考问题 怎样控制只让population不等于0的动物种类在表格中显示 而等于0的种类不显示 2020 4 6 第4章XML的样式单XSLT 39 例4 7中使用了来进行条件判断 检测当前节点的值是否为0 如果为0 则显示相应的信息 只能用于一个条件的判断 当需要判断多个条件时 可以使用 例4 8 2020 4 6 第4章XML的样式单XSLT 40 4 6节点的排序 在默认情况下 总是按照节点在文档中出现的顺序对它们先后进行处理 如果希望改变节点显示的顺序 可以使用元素 例4 9 2020 4 6 第4章XML的样式单XSLT 41 4 7语法注意点 使用或不使用XSLT处理器时 XML文档和XSLT样式表中会有一些细小但却很重要的差别 1 只使用InternetExplorer 早期版本 时的情况 XML文档开头写成如下形式 XSLT样式表的开头写成如下形式 2020 4 6 第4章XML的样式单XSLT 42 2 先使用XSLT处理器 再使用浏览器时的情况 XML文档开头写成如下形式 XSLT样式表的开头写成如下形式 2020 4 6 第4章XML的样式单XSLT 43 XSLT的学习资源 2020 4 6 第4章XML的样式单XSLT 44 XSLT应用实例 实例1 使用XSLT创建页眉和页脚我们现在为planets htm这个页面生成页眉和页脚 首先将XML声明和样式表处理指令加入到此文件中 并将其保存成XML文档 planets xml 由于先前的planets htm是一个结构良好的XHTML文档 因此将其转换为XML文档只需要添加一个声明并修改其文件扩展名 2020 4 6 第4章XML的样式单XSLT 45 在XSLT样式表中 以一个XML声明和样式表文档元素开始 紧接其后的是输出方式 元素的作用是定义输出文档的格式 indent属性指定需要为输出内容添加缩进 我们想要做的只是为页面添加页眉和页脚 因此只需要对元素进行修改 添加相关内容 对于其他部分 包括的子元素 都可以保持不变 接下来先对这些保持不变的内容进行转换 2020 4 6 第4章XML的样式单XSLT 46 可以使用下面的转换来使得XML文档中的标签保持不变 元素的作用是 创建一个当前节点的复制版本 当前节点的命名空间节点也会被自动复制 但是当前节点中的子节点和属性将不会自动复制 如果上面的模板是样式表中唯一的模板 那么会产生一个和源文档一模一样的文档 2020 4 6 第4章XML的样式单XSLT 47 接下来我们转换元素 添加页眉和页脚 由于页面的内容都包含在元素中 因此该元素就成为样式表的焦点 对的转换如下 VisitNASA TourthesolarsystemCopyrightPlanetaryFun2006 2020 4 6 第4章XML的样式单XSLT 48 现在有一个问题 两个模板都可应用到body元素 哪一个会被应用呢 2020 4 6 第4章XML的样式单XSLT 49 哪一个模板会被应用 在XSLT1 0中 有一个priority属性 用来指定如果多个模板匹配同一个节点时 哪一个模板优先使用 数值越高 表示该模板越优先被选用 如果没有指定priority属性 XSLT处理器将选择所有匹配模板中最明确的一个 前面的例子中 两个模板都可以应用于元素 但是很明显第二个模板更加明确是专门匹配的元素的 因此元素的元素的转换采用了第二个模板 2020 4 6 第4章XML的样式单XSLT 50 实例2 创建目录下面的实例将创建一个目录 用来显示太阳系中行星的信息 该例也将说明如何从现有内容中自动地创建新的内容 XML文档 planets2 xmlXSLT样式表 planets2 xsl 2020 4 6 第4章XML的样式单XSLT 51 样式表的变化首先发生在匹配元素的模板中 增加了以下内容 Quickreference 2020 4 6 第4章XML的样式单XSLT 52 上面的样式表首先创建一个标题 并打开一个无序的列表 遍历中每一个元素 对每一个元素 会输出一个标签 接着创建一个标签 然后使用为标签添加一个属性href 并给href赋予特定的属性值 该属性值由 号和后面的内容指定 本例中为标签中的任何文本 text 如果标签包含文本 Venus 会输出如下内容 同时也将标签的内容填充到和之间 2020 4 6 第4章XML的样式单XSLT 53 以上新增内容产生的输出是 QuickreferenceVenusMars 2020 4 6 第4章XML的样式单XSLT 54 现在看另一个改变 在匹配的模板后多了匹配的模版 由于前面创建了目录链接 所以需要在最终输出的XHTML文档之中相应的标题处创建锚点作为链接的目的地 这在新加入的模板中完成 2020 4 6 第4章XML的样式单XSLT 55 新增的模板如下 2020 4 6 第4章XML的样式单XSLT 56 以上模板将每一个转换为以下内容输VenusMars 2020 4 6 第4章XML的样式单XSLT 57 现在我们看一下这种转换的灵活性 当我们往原有的XML文档中加入一颗新的行星的内容时 会发现经过转换后 自动为新的内容生成了目录 如planets3 xml 2020 4 6 第4章XML的样式单XSLT 58 实例3 使用XSLT表现XML前面的例子是用XSLT来显示特殊的XML词汇 XHTML的例子 下面的例子更适用于一般的XML文档 对planets xml进行修改 把其中表示显示结构的元素全部删除掉 修改后的文档为planets4 xml 我们使用一个叫做planets4 xsl的样式表来处理xml文档 该样式表在XML文档中添加了一些结构化的元素 从而将其转换为一个XHTML文档 2020 4 6 第4章XML的样式单XSLT 59 在planets4 xsl中 有如下模板 这个节点是用于匹配文档中的文本节点的 对于文本节点 XSLT有一个内建规则 即XML源文档的任何文本如果没有特别说明 则会被原样复制到输出文档中 该规则与以下语句等同 上面的相当于取消了默认规则 2020 4 6 第4章XML的样式单XSLT 60 注意 如果在应用模板时 不使用属性select 那么处理器将寻找并应用所有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书:子女监护权与财产分配综合方案
- 离婚协议签订前七大法律问题解析及应对策略
- 复杂离婚财产分割及子女未来生活品质协议
- 交通银行2025昌吉回族自治州秋招面试典型题目及参考答案
- 邮储银行2025秋招半结构化面试题库及参考答案辽宁地区
- 2025年3D打印的个性化服装设计
- 建设银行2025乌兰察布市秋招群面模拟题及高分话术
- 2025行业新兴市场发展报告
- 2025行业技术发展趋势研究
- 农业银行2025漳州市秋招无领导小组面试案例题库
- 工地剪彩活动方案
- 道路养护工程材料供应保障及进度措施
- 法院付款申请书
- 小儿心律失常的护理讲课件
- 2025-2030年积木产业市场深度调研及发展趋势与投资战略研究报告
- 校园各社团管理制度
- DB4403T 508-2024《生产经营单位锂离子电池存储使用安全规范》
- 2024年贵州省威宁彝族回族苗族自治县卫生局公开招聘试题带答案
- 2025届云南省红河州英语七下期末学业质量监测模拟试题含答案
- 2025年上海市中考数学试卷真题及解析答案
- T/CECS 10021-2019照明用LED驱动电源技术要求
评论
0/150
提交评论