您好,欢迎访问三七文档
1XML及其应用授课教师侯霞-XML基础及应用--XSL转换2教学目标理解XSL的一些基本概念和结构掌握Xpath的表示方法和含义掌握XSLT转换语言的基础知识,熟悉XSLT所使用的元素、模板、函数等掌握XSLT的应用方法通过具体实例的学习,学会运用XSLT编写转换模板-XML基础及应用--XSL转换学习内容5.1XSL入门5.4XPath简介5.2XSL模板5.3XSL控制指令-XML基础及应用--XSL转换45.1XSL入门XML满足两个基本的需求将数据和表示形式分离。在不同的应用之间传输数据。为了使数据适合不同的应用程序,必须能够将一种数据格式转换为另一种数据格式。XSL是目前用来设计XML文档显示样式的主要技术之一。-XML基础及应用--XSL转换5XSLT和CSS的比较CSS的局限性CSS不能重新排序文档中的元素;CSS不能判断和控制哪个元素被显示,哪个不被显示;CSS不能统计计算元素中的数据;非XML语法;CSS的优点简洁,消耗系统资源少-XML基础及应用--XSL转换6XSLT和CSS的比较CSSXSL适用在HTML可以不行适用在XHTML可以可以适用在XML可以可以使用的语法CSS样式语法XML语法是否是转换语言不是是-XML基础及应用--XSL转换75.1XSL入门XSL主要的功能:1.将XML转换成HTML;2.过滤和分类XML数据;3.对一个XML文档的部分进行寻址;4.基于数据值格式化XML数据;5.向不同设备输出XML数据的语言。Example5_1-XML基础及应用--XSL转换5.1.1XSL概述XSL由W3C提出并规范,主要组成:XSLT(XSLTransformation):XSLT用于将XML文档转换为其他形式的文档的语言。XPath:用于在XML文档中导航的语言。FO(FormatObject):用来格式化XML文档以及把样式应用到XML文档之上。-XML基础及应用--XSL转换5.1.2XML文档结构树XML文档在展开后是一种树状结构,称为“原始树”XSL处理器从这个树状结构读取信息,根据XSL样式的指示对这个“原始树”进行排序、复制、过滤、删除、选择、运算等操作后产生另外一个“结果树”然后在“结果树”中加入一些新的显示控制信息,如表格、其他文字、图形以及一些有关显示格式的信息。-XML基础及应用--XSL转换5.1.2XML文档结构树XSL转换的具体过程-XML基础及应用--XSL转换5.1.3XSL文档的组成?xmlversion=1.0encoding=gb2312?xsl:stylesheetxmlns:xsl=:templatematch=/!--若干控制XML文档元素显示的规则--/xsl:template……/xsl:stylesheet-XML基础及应用--XSL转换125.1XPath简介一种专门用来在XML文档中查找信息的语言XPath的主要目的是对XML1.0树的结点寻址,通过使用路径表示法在XML文档的层次结构中导航来获得结点信息。XPath设计成嵌入在宿主语言(如XSLT2.0)中,而不独立使用。-XML基础及应用--XSL转换135.1XPath简介XPath表达式返回4种类型值:节点集合(node-set)布尔值(Boolean)数字字符串-XML基础及应用--XSL转换14XPath表达式(1).节点导航斜线分隔父子节点“/”开始指向文档的根双斜线“//”是节点的通配路径在路径的末尾加一个星号“*”返回当前路径下所有节点例:“book/title”“//title”“book/chapter/*”-XML基础及应用--XSL转换15XPath表达式(2).访问数据@符号指节点的标记属性方括号从一个集合中选出一个节点“bookstore/book[1]”“bookstore/book[1]/title/@lang”“//title[@lang=‘english’]”-XML基础及应用--XSL转换16匹配中使用的特殊字符特殊符号含义范例说明/子节点操作符item/itemName匹配item节点下的itemName子节点//循环下降。符号后余下部分可能与文档中的任何节点相匹配item//itemName匹配item节点下,只要有itemName子节点*选择任何元素的通配符book/*book节点下的所有子节点@表示紧接的名称指向一个属性book/@isbnbook节点的isbn属性[]可以在其内指定元素或属性,也可加上额外的测试条件book[@isbn]book节点下有属性isbn的节点|与多个节点匹配book|title与book或title匹配.当前节点.取得当前节点..父节点../itemName父节点下的itemName节点-XML基础及应用--XSL转换17XPath的例子一个XML文档?xmlversion=1.0encoding=ISO-8859-1?bookstorebooktitlelang=engHarryPotter/titleprice29.99/price/bookbooktitlelang=engLearningXML/titleprice39.95/price/book/bookstore-XML基础及应用--XSL转换18例题1选择节点(集)PathExpressionResultbookstoreSelectsallthechildnodesofthebookstoreelement/bookstoreSelectstherootelementbookstoreNote:Ifthepathstartswithaslash(/)italwaysrepresentsanabsolutepathtoanelement!bookstore/bookSelectsallbookelementsthatarechildrenofbookstore//bookSelectsallbookelementsnomatterwheretheyareinthedocumentbookstore//bookSelectsallbookelementsthataredescendantofthebookstoreelement,nomatterwheretheyareunderthebookstoreelement//@langSelectsallattributesthatarenamedlang-XML基础及应用--XSL转换19PathExpressionResult/bookstore/book[1]Selectsthefirstbookelementthatisthechildofthebookstoreelement/bookstore/book[last()]Selectsthelastbookelementthatisthechildofthebookstoreelement/bookstore/book[last()-1]Selectsthelastbutonebookelementthatisthechildofthebookstoreelement/bookstore/book[position()3]Selectsthefirsttwobookelementsthatarechildrenofthebookstoreelement例题2条件选择-XML基础及应用--XSL转换20PathExpressionResult//title[@lang]Selectsallthetitleelementsthathaveanattributenamedlang//title[@lang='eng']Selectsallthetitleelementsthathaveanattributenamedlangwithavalueof'eng'/bookstore/book[price35.00]Selectsallthebookelementsofthebookstoreelementthathaveapriceelementwithavaluegreaterthan35.00/bookstore/book[price35.00]/titleSelectsallthetitleelementsofthebookelementsofthebookstoreelementthathaveapriceelementwithavaluegreaterthan35.00例题2条件选择(续)-XML基础及应用--XSL转换21PathExpressionResult/bookstore/*Selectsallthechildnodesofthebookstoreelement//*Selectsallelementsinthedocument//title[@*]Selectsalltitleelementswhichhaveanyattribute例题3选择未知节点-XML基础及应用--XSL转换XPath运算算术运算:加(+)、减(-)、乘(*)、除(div,idiv)、模运算(mod)等。比较运算数值比较一般比较结点比较逻辑运算:and(与)和or(或)两种。逻辑运算的返回值永远是真,或者假。22-XML基础及应用--XSL转换23运算符OperatorDescriptionExampleReturnvalue|Computestwonode-sets//book|//cdReturnsanode-setwithallbookandcdelements+Addition6+410-Subtraction6-42*Multiplication6*424divDivision8div42=Equalprice=9.80trueifpriceis9.80falseifpriceis9.90!=Notequalprice!=9.80trueifpriceis9.90falseifpriceis9.80Lessthanprice9.80trueifpriceis9.00falseifpriceis9.80-XML基础及应用--XSL转换24运算符续OperatorDescriptionExampleReturnvalue=Lessthanorequaltoprice=9.80trueifpriceis9.00falseifpriceis9.90Greaterthanprice9.80trueifpriceis9.90falseifpriceis9.80=Greaterthanorequaltoprice=9.80trueifpriceis9.90falseifpriceis9.70ororprice=9.80orprice=9.70trueifpriceis9.80falseifpriceis9.50andandprice9.00andprice9.90trueifpriceis9.80falseifpriceis8.50modModulus5mod21-XML基础及应用--XSL转换XPath函数1.函数调用内置函数是XPath2.0函数和运算符定义所支持的函数。函数调用包括一个函数名称和用括号括起来的0个或多个表达式(叫变量)。如果函数调用不含名称空间前缀,则认为调用是在默认函数名称空间中进行的。25-XML基础及应用--XSL转换1)数值函数26-XML基础及应用--XSL转换2)聚合函数聚合函数把一组序列作为一个变量并通过计算返回单值。除fn:count外,这组序列必须包含单一类型的值。27-X
本文标题:第5章XSL转换6
链接地址:https://www.777doc.com/doc-2110286 .html