版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 XML文件的显示CSS和XSL,XML将数据与表示规则分隔开来。XML需要 一种显示机制用于显示XML中的数据。 XML的样式语言能将一个原始XML文档转换 成适应视觉(或听觉)感应的一系列“解释对象”。 XML的样式语言标准主要有: 层叠样式表(Cascading Style Sheets, CSS) 扩展样式表语言( eXtensible Stylesheet Language, XSL),5.1 级联样式表CSSCascading Style Sheets,是一个文本,包含特殊元素格式特征的一个或者更多的规则和定义。 它控制XML文档和HTML文档中的标签如何被格式化。 实现了数
2、据或内容与表示方法的分离 CSS与XML结合比与HTML结合的更好。,CSS的语法,语法如下: elementname property1:value; property2:value; elementname,选择符,用来指定元素的名字 property1和 property2为属性名 value指定属性名的值,也可以把一组属性应用到多个元素中 elementname1,elementname2,css与xml文档的链接,要使样式表应用到对应的xml文档中,必须要在xml文档中进行链接。 链接语句是一个xml指令 type:指定使用的样式表类型 href:URL,表示样式表文件的位置,CSS
3、示例-chapter5_1, Hello, there! Good morning! How are you? ,xdoc color:navy; display:block greeting font-family: Arial;font-size: 32pt; width: 30em; color: red question font-size: x-large;color: black answer font-size: 20pt;color: blue ,xdoc, Hello, there! Good morning! How are you? ,内嵌css,CSS的局限,CSS可以
4、格式化XML文档,能够很好的控制输出的样式,比如色彩、字体、大小等,只能是文档的样式或外观。 CSS不能重新排序文档中的元素。 CSS不能判断和控制哪个元素被显示,哪个不被显示。 CSS不能统计计算元素中的数据。,5.2 可扩展样式表XSL,XSL(eXtensible Style sheet Language),可扩展样式表语言,是XML的首选样式表语言,提供了比CSS更为强大的功能。 XSL的主要用途是将一个xml文档转换为另外的文档(XML、HTML或者其他格式的文档) XSL是WWW协会推荐的一种标准。它包括3部分: 1、XSLT(XSL Transformation):将xml文档转
5、换为其他形式的文档的语言。 2、 XPath:在xml文档中导航的语言 3、FO(Format Object):格式化xml文档语言,是一种定义xml显示方式的语言。,XSL,使用XSL样式表对XML文档进行转换过程分 为两个步骤: 1、根据文档构造源树(xml文档的树形结构,其中每个元素一个节点),然后根据给定的XSL规则转换为可显示的结果树。也就是XSLT。 2、生成结果树后,对其进行解释,产生一种适合显示的格式,即格式化。,可扩展样式表XSL,XSLT初步,XSLT的主要功能就是转换,将一个没有外观样式信息的xml文档作为一个源树,转换为一个有样式信息的结果树。 在XSLT文档中定义了与
6、xml文档中各个逻辑成分相匹配的模板和匹配转换方式。 通过XSLT可以添加和移除要显示的元素和属性,还可以进行重新排列等。 在这过程中需要借助XSL处理器负责实现转换过程。例子:chapter5_2, 数据库系统概论 7040195836 王珊 高等教育出版社 30 xml编程与应用教程 9787302223481 孙更新 清华大学出版社 30 , 图书信息 title author ,选取指定节点集中的每个xml元素,选取某个选定节点的值,并添加到输出流中输出,定义了一个模板,属性match说明模板在xml中开始的位置,表明定义的是XSLT样式文档,包括版本号和命名空间, 数据库系统概论 7
7、040195836 王珊 高等教育出版社 30 xml编程与应用教程 9787302223481 孙更新 清华大学出版社 30 ,Books.xml,5.2.4 XSL模板,模板是XSL中最重要的概念,XSLT文件由一个一个的模板组成,任何一个XSLT文件至少包含一个模板。 模板可以被拼装组合,也可以单独成块,不同的模板控制不同的输出格式。 使用模板的优点: 如同程序设计中的模块化设计 有利于人员分工、协作,模板(template),模板规则由两部分组成:匹配模式(match pattern)和执行。 匹配模式指定了xml源文档中哪一个节点将被模板处理。 执行则定义输出的是什么格式。 两部分对
8、应的语法为template和apply-templates。,XSL模板元素,(1) 定义一个模板 每个xsl:template都有一个match属性,用来指定要将此模板应用于输入文档的哪个节点。 ,match属性的属性值是一个XPath表达式,将在后面具体描述,XSL模板元素,(2) 调用一个模板(函数调用) select属性定义确切的节点的名称,可选,默认值“node()”,表示对当前节点的所有节点执行该模板。 xsl:apply-templates总是包含在xsl:template元素中,XSL模板示例 poem1.xml, , 李白 静夜思 床前明月光,疑是地上霜。 举头望明月,低头思
9、故乡。 王之涣 登鹳雀楼 白日依山尽,黄河入海流。 欲穷千里目,更上一层楼。 ,poem1.xsl,XSLT的元素语法,节点选择语句 循环判断语句 排序语句 用于选择的元素 xsl:if和xsl:choose,节点选择语句,用来取出xml文件中被选择的元素或属性的内容,语法如下: select:限定从哪个节点或属性来取值 注意: 1、如果要显示属性的值,必须在属性名之前,加“”符号作为前缀。 xsl:value-of select=“元素名/属性名” 2、value-of元素是一个空元素,在结束前,应有“/”。, ,循环判断语句,遍历指定的节点集中的节点,循环选择多条数据。 节点集中有m个相匹
10、配的元素,循环就执行m次。 语法: ,books3,排序语句,对XML源文档的元素进行重新排序,sort 元素没有子元素,它用作for-each或apply-template的子元素。 在/1999/XSL/Transform里定义;排序的语法: data-type:表示被排序的数据类型,可以是数字、文本或用户自定义,缺省是文本。,books3,单条件判断语句,对匹配条件进行判断,如果为真就执行条件内部的规则。 语法 用元素的名称作为匹配条件 用元素内容作为匹配条件 用元素的属性值作为匹配条件 ,xmlif,多条件判断语句(xsl:choose),多条件的分支判
11、断 语法 . ,books3,XSLT和CSS,XPath, XPath使用路径表达式识别XML文档里的节点。 这些路径表达式看起来很象计算机的文件系统。 XPath是XSLT的一个主要元素。没有XPath知 识,我们将无法建立一个XSLT文档。 用于match,select,test属性 /catalog/cd/price,XPath数据类型,节点集(node-set)节点集是通过路径匹配返回的符合条件的一组节点的集合。其它类型的数据不能转换为节点集。这种数据类型是XML文档树的特有产物。 布尔值(boolean)由函数或布尔表达式返回的条件匹配值,与一般语言中的布尔值相同,有true和fa
12、lse两个值。布尔值可以和数值类型、字符串类型相互转换。,XPath数据类型,字符串(string)字符串即包含一系列字符的集合,XPath中提供了一系列的字符串函数。字符串可与数值类型、布尔值类型的数据相互转换。 数值(number)在XPath中数值为浮点数,可以是双精度64位浮点数。另外包括一些数值的特殊描述,如非数值NaN(Not-a-Number)、正无穷大infinity、负无穷大-infinity、正负0等等。number的整数值可以通过函数取得,另外,数值也可以和布尔类型、字符串类型相互转换。,XPath表达式,XPath将XML文档看作由节点构成的层次树。每棵树包括:元素节点
13、;属性节点;文本节点;处理指令节点;注释节点和命名空间节点。 我们可以通过编写XPath表达式来定位树中特定的节点。对一个文档使用XPath会得到以下几种结果:一个单独的节点;一组节点;一个布尔值;一个浮点数;或者一个字符串。,XPath定位路径,一个定位路径表达式返回一个节点集。 一个定位路径可以是绝对的或相对的。 绝对定位路径以一个斜线(/)开头,而相对定位路径没有。 定位步骤包括三个方面: 1、一个轴:指定当前定位步骤和当前节点选择的节点间的树关系。 2、一个节点测试:指定定位步骤选择的节点的节点类型和扩展名。 3、零或多个预测:使用表达式进一步抽取定位步骤选定的节点集。,常用操作符(简
14、略型),位置匹配(多用于value-of),(注意:没有first()函数),属性与属性值匹配(多用于比较),节点集函数,count()返回被选择的元素的数目 id()通过元素的唯一ID选择元素 last()返回最后最后一个节点式第几个节点(等同于总共有几个节点) local-name()返回节点集中第一节点的local name name()返回元素的名称 namespace-uri()返回节点集中第一个节点的命名空间的 URIposition()返回是第几个节点,字符串函数 2-1,concat()将参数字符串连接后返回 contains()如果第一个字符串包含第二个字符串,则返回真,否则
15、返回假 normalize-space()将字符串中前后空格删除后返回 starts-with()如果第一个字符串以第二个字符串开头则返回真,否则返回假 string()将一个对象转换为字符串后返回 string-length()返回一个字符串的长度,字符串函数 2-2,substring()从字符串的某个偏移位置开始返回指定长度的字符串 substring-after()返回字符串中从开始到某一字符串第一次出现的位置后的字符串 substring-before()返回字符串中从开始到某一字符串第一次出现的位置前的字符串 translate()替换一个字符串中字符,数值函数,ceiling()
16、返回不小于参数的最小整数floor()返回不大于参数的最大整数 number()转换参数为一个数字 round()对参数四舍五入 sum()返回所有参数的和,布尔函数,boolean()将参数转换为布尔值 false()返回假 not()如果参数是假,则返回真,否则返回假 true()返回真,5.2.7 合并多个样式表,xsl:import元素 xsl:include元素 p164,xsl:import元素,Import元素用来将一个XSLT样式表导入另一个样式表中。 普通形式: 其中href属性值必须输入XSLT样式表的地址或定位。 Import元素必须立即出现在stylesheet元素之后的一个顶级元素。,xsl:include元素,xsl:include元素也是顶级元素,语法类似于xsl:import元素。它将另一个样式表导入到当前的样式表中所指定的位置处(确切的说,它将远程文档中xsl-stylesheet元素的内容复制到当前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南省大理市高一化学上册期末考试模拟考试卷及完整答案(夺冠)
- 2026年福建省福鼎市高三生物上册期末考试测试卷及答案
- 一年级数学下册 第7课时 两位数减整十数、一位数(不退位)
- 美术基础教学教案
- 基于构件的建筑工程协同模式深度剖析-以芦家巷社区活动中心为样本
- 基于机器学习的问卷可信度审核系统:原理、应用与优化
- 基于本体的语义检索:技术革新与实践探索
- 基于期望理论的南宁市S区城管协管员激励机制优化探索
- 基于有限元模拟的吸能盒焊点优化策略研究
- 基于有源RFID技术的车辆识别与控制终端系统:原理、设计与应用探究
- T/CNSS 006-2020学龄前儿童集体餐营养要求
- 3.2代数式的值教学设计人教版数学七年级上册
- 露天矿山环保操作规范培训课件
- 《WPS AI智能办公应用大全》全套教学课件
- 高三拼搏班会课件
- 多病共存的慢病管理课件
- 职业健康粉尘防护培训
- DB32-T 5082-2025 建筑工程消防施工质量验收标准
- 易见股份财务舞弊动因及后果研究
- 【MOOC】倾听-音乐的形式与审美-武汉大学 中国大学慕课MOOC答案
- 2024年北京朝阳区高三(上)期中物理试题及答案
评论
0/150
提交评论