已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章使用XSL格式化显示XML文件,6.1XSL的特点,6.2XSL变换步骤,6.3XSL的文件结构,6.6其它常用XSL标记,6.4XSL的模式语言,6.5XSL的常用控制标记,1,6.1XSL的特点,XSL通过路径的方式来定位数据,从而可以轻易地提取出特定的数据。,XSL提供了循环、条件、选择等控制语句。从这方面讲,XSL更接近于程序设计语言。,XSL文件是由标记组成的,是一种特殊的XML文件。,XSL不仅可以实现CSS的所有功能,还可以实现CSS做不到的功能。,XSL的内容涉及两个部分:变换语言(XSLTransformation,XSLT)和格式化语言(XSLFormattingObjects,XSL-FO)。,返回,2,利用XSL来格式化XML文件需要通过下面的步骤:,6.2XSL变换步骤,1.为需要显示的XML文件编写相应的XSL文件。,2.把XML文件和相应的XSL文件相关联。,3.应用程序会将其变换称为一个HTML文件。,XSL文件所采用的编码必须和对应的XML文件的编码一致,保存后的XSL文件的扩展名为“.xsl”。,XML文件关联XSL文件类似于关联CSS文件,需要在文件的开头加入下面一条语句:,应用程序(例如IE6.0)会自动将XML文件和相关联的XSL文件变换称为一个HTML文件。,返回,3,一个XSL样式文件的最基本的结构如下:,6.3XSL的文件结构,内容描述,返回,4,6.4XSL的模式语言,6.4.1相对定位和绝对定位,6.4.2XSL的路径匹配模式,返回,5,相对定位和绝对定位(1),绝对定位法,绝对定位法就是相对于文件的根给出一个路径来定位到数据,这个路径称之为绝对路径。,例如,计算机文件系统中路径“C:WINNTsystem32notepad.exe”就是一个绝对路径。,用XSL格式化XML时,总是先定位到XML文件的根。文件的根用“/”表示。所以,绝对路径以“/”开头,向后依次为各级子标记,各级标记用“/”隔开,代表父子节点关系。例如:,/message/persion/name,XML文档的根标记是“message”,“persion”标记是“message”标记的子标记,“name”标记是“persion”标记的子标记。,6,相对定位和绝对定位(2),相对定位法,相对定位法是指相对于当前的位置来定位数据,这时的路径是一个相对路径。相对路径是一个相对位置的描述,表示从当前位置出发,通过这个相对路径,就可以找到特定的数据。,/message/persion/name/lxfs/tel,相对路径都不以“/”开始,“.”表示上一级标记。例如:假设当前位置是“/message/persion”,则路径“lxfs/tel”就表示相对于当前位置下的“tel”标记。代表的绝对路径是:,返回,7,XSL的路径匹配模式(1),XSL的路径匹配模式就是通过一些条件的描述来选出特定的数据,有以下一些形式:,1使用任意深度匹配符“/”,2使用通配符“*”,3匹配标记的内容,4匹配标记的属性及子标记,5复合条件匹配,6使用集合索引函数,8,XSL的路径匹配模式(2),1使用任意深度匹配符“/”,该符号的作用是定位指定标记的后代标记中具有某些特征的标记,中间可以间隔任意级别的标记。例如:,/tel,表示从文件的根开始搜索,遇到“tel”标记就输出其标记的内容,与tel标记的具体位置没有关系。表示所有的“tel”标记。而:,/lxfs/tel,表示具有父标记为lxfs特征的tel标记。,9,XSL的路径匹配模式(3),2使用通配符“*”,通配符“*”表示任意名称的标记,它可以匹配任意标记。例如:,lxfs/*,表示标记lxfs的所有子标记。,注意:通配符“*”可以代替任意名称的标记,一个“*”只能代替一级标记,如果是多级标记,可以用“message/*/*/tel”的形式,表示的路径可以是“message/persion/lxfs/tel”等。,10,XSL的路径匹配模式(4),3匹配标记的内容,匹配标记的内容就是根据标记的某种特定内容来定位标记。例如:,message/persionname=小李,表示满足条件:标记persion的子标记name的标记内容为小李。,两个运算符:“$any$”:表示只要有一个标记满足条件。“$all$”:表示所有的标记都要满足条件。,例如:,message/persion$any$name=小李,表示标记persion的子标记中只要有一个name的标记内容为小李。,11,XSL的路径匹配模式(5),3匹配标记的内容,在这个模式下需要用到的关系运算符有:相等“=”、不等“!=”、小于“”和大于等于“=”。在XSL中,这些符号都有特殊的编码,见下表:,12,XSL的路径匹配模式(6),4匹配标记的属性及子标记,根据标记所具有的属性或子标记的不同来选出具有某些特征的标记。例如:,message/persionid,表示查找具有“id”属性且父标记为message的persion标记。,message/persionid$eq$2,表示message标记的子标记中“id”属性值为2的persion标记。,message/persion*/tel,表示该路径下含有tel孙标记的persion标记。,13,XSL的路径匹配模式(7),5复合条件匹配,所谓的复合匹配条件,就是把前面所介绍的几种单一条件结合到一起,使之成为一个具有多重约束条件的一个语句。例如:,message/persion(age$gt$18)$and$($not$(sex$ieq$female),表示子标记age的内容大于18且子标记sex的内容不是female的persion标记。上面的语句还可以写成:,message/persion(age$gt$18)$not$(sex$ieq$male),注意:只有逻辑与才可以分开写成几个方括号连接的形式。,14,XSL的路径匹配模式(8),6使用集合索引函数,在XSL中,使用各种条件来过滤数据,有时得到的结果可能不只一个。如果我们想取出其中的某一条记录,就需要使用集合索引函数。例如:,message/persionid$and$index()=1,表示取出来的是第二条记录。,集合索引函数包括index()和end()。index()表示当前一组标记中的第几个,0表示第一个。end()表示当前一组标记中的最后一个。,返回,15,6.5XSL的常用控制标记,6.5.1循环标记,6.5.2选择标记,6.5.3选择标记,6.5.4求值标记,返回,16,循环标记,允许循环处理满足由select属性中指定的匹配条件的标记。标记还有一个属性order-by,该属性用来给满足条件的一组标记排序,例如:,表示循环遍历persion标记内容,并按name标记和age标记内容排序。排序的方法是:先按照name标记的内容进行排序,如果name标记的内容相同,再按照age标记的内容进行排序。如果不使用order-by属性,则以XML文件中出现的顺序排序。,返回,17,选择标记,与其他程序设计语言相似,根据某个逻辑条件来决定程序是否执行。例如:,还可以写成:,注意:标记中,属性test是必选属性,用来设置过滤条件。,返回,18,选择标记,标记只能判断满足某个条件时需要做哪些事情,而不满足的情况则无法处理。也就是说,在XSL里没有“if-else”结构。标记则可以做到多选一的功能,例如:,男未知,标记含有两个子标记和,一个标记可以含有多个子标记,每个表示一种情况,一般最后有一个子标记,表示如果前面的情况都不满足,则执行里的动作。,返回,19,求值标记,这个标记不但可以取到某个标记的值,还可以取到某个标记的某个属性的值。通过select属性来设定取值条件,如果满足条件的有多个记录,则输出这些记录中的第一条。例如:,第一条语句表示取出具有id属性且属性值为2的persion标记的id属性值,第二条语句表示取出具有id属性且属性值为2的persion标记的name子标记的标记内容。,如果只是输出当前标记的内容,则select属性可以省略。,返回,20,6.6其它常用XSL标记,6.6.1标记和标记,6.6.2标记,6.6.3标记,6.6.4标记和标记,6.6.5标记,返回,21,标记和标记(1),标记:,标记是XSL中的模板标记。模板(template)是XSLT中最重要的概念之一。XSLT文件就是由一个一个的模板组成,任何一个XSLT文件至少包含一个模板。模板定义的方法如下:,match属性:表示模板的匹配模式,是必选属性。一个模板可以匹配一个标记,也可以匹配多个标记,各个标记用“|”隔开。name属性:为模板定义名称。一个XSL文件不能包含同名模板。priority属性:表示模板的优先级编号。不考虑所有优先级低于最高优先级的匹配模板规则。此属性的值必须是09的实数,正数负数都可以。mode属性:为模板规定模式。,各个属性的意义如下:,22,标记和标记(2),标记:,标记是XSL中的模板调用标记。标记的使用方法如下:,其他语句,标记含有两个属性“select”和“mode”。“select”属性是可选属性,定位到要处理的标记。星号“*”表示选取所有标记。如果省略该属性,则将选取当前标记的所有子标记。“mode”属性也是可选属性,用来区分XSL文件中为相同标记定义的多个处理方法的模板。,返回,23,标记,标记表示在输出中创建一个与当前节点的名称、命名空间和类型相同的标记,属性和子元素不会自动复制。该标记必须在模板中使用。格式如下:,将会被替换为“”。,文本内容,或,后者,相应部分会被替换为“文本内容”,返回,24,标记,标记用来给XSL文件添加注释,该标记所标记的内容就是注释的内容。XSL处理器会忽略其标记的内容,不做任何处理。例如:,该模板输出XML文件中名称为name的标记的内容,样式为1号标题,返回,25,标记和标记(1),标记,标记用于在XSL文件中添加脚本,例如:JavaScript、VBScript等,这也是XSL的特色之一。通过脚本的使用,可以使XSL在不同的语言之间进行数据转换。标记的用法为:,脚本内容,例如:,functiondate()today=newDate();month=today.getMonth()+1;day=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目成本控制与预算调整表
- 2025年北师大版六年级下册数学“希望杯”公益选拔赛试题及答案
- 家庭养老服务保证承诺书7篇范文
- 2025年九年级数学实验班选拔考试试题含答案
- 互联网技术产品经理项目绩效表
- 会议高效组织与策划操作手册
- 环保科技公司市场推广人员绩效评定表
- 2025年中国直流无刷电机行业市场现状、前景分析研究报告(智研咨询发布)
- 项目财务预算审批流程模版
- 寝室门牌购买协议书
- 2026年素质教育课程合作合同
- 中国银联校园招聘在线测试考试笔试内容科目历年真题
- 防校园欺凌安全教育课件
- 2025年环境科学相关职位岗位招聘面试参考题库及参考答案
- 工程人员转型物业管理方案
- 2025中国诚通所出资企业招聘344人笔试历年典型考点题库附带答案详解试卷3套
- 2025年医疗废物管理制度试题及答案
- 完型填空15篇(浙江专用)(期末题型考前过关练)-2023-2024学年八年级英语上册单元模块满分必刷题(人教版)
- 公路交通运营管理与服务质量提升
- 《愚公移山》文学作品分析与感悟
- 2024年全国职业院校技能大赛ZZ052 大数据应用与服务赛项规程以及大数据应用与服务赛项赛题1-10套
评论
0/150
提交评论