《XML技术及应用 第5章_利用XSL实现XML文档多种格式化显示.ppt》由会员分享,可在线阅读,更多相关《XML技术及应用 第5章_利用XSL实现XML文档多种格式化显示.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 XML技术及应用第五章 利用XSL实现XML文档多种格式化显示水利水电出版社水利水电出版社水利水电出版社水利水电出版社古凌岚、罗佳等编著知识要点o有条件的格式化显示o基于XPath的格式化显示o以制表格式显示5.1 基于条件进行格式化数据 o实例:按价格对书籍信息进行分类显示o问题需要显示书店中书籍的列表。这些书籍需要按照它们的价格来进行分类。以红色显示价格高于50元的详细资料,其他的以绿色显示。显示的详细资料包括书籍名称、描述、价格和现有量。5.1 基于条件进行格式化数据o实现效果实现效果 5.1 基于条件进行格式化数据o分析分析n确定要显示的元素数据 n确定根据条件格式化数据所需的条件n
2、创建根据条件格式化数据的样式表n将样式表应用于XML文档n查看该XML文档5.1 基于条件进行格式化数据o确定要显示的元素数据 nBookNamenKeyword(描述)nPricenQty5.1 基于条件进行格式化数据o确定根据条件格式化数据所需的条件nif元素如果条件为true,那么执行的动作 nchoose元素执行动作:执行动作5.1 基于条件进行格式化数据o确定显示格式化数据的机制n选择符o标记o类选择符o标识选择符n样式属性5.1 基于条件进行格式化数据o确定显示格式化数据的机制操作符操作符含含义义例子例子=等于Price.=20BookName.=“xml”!=不等于Price.!
3、=20<小于Price.<20>大于Price.>20<=小于或等于Price.<=20>=大于或等于Price.>=20And逻辑“与”Price.>20 and.<30Or 逻辑“或”Price.=20 or.=45Not否定操作符Pricenot(.=30)5.1 基于条件进行格式化数据o单元练习单元练习需要显示客房信息详细资料,包括客房编号、客房标准编号、客房状态、备注。其中客房状态为“已订”的客房以红色显示,其他的以绿色显示。5.2在XSLT样式表中使用XPATH模式 o实例:使用实例:使用XPATH模式实现产品销售情况模式
4、实现产品销售情况统计统计 o问题问题书店管理系统需要显示一个关于销售情况的总结性报告。所有详细资料都放在一个XML文档中。该数据包含关于产品的详细资料和该产品的销售情况。5.2在XSLT样式表中使用XPATH模式o实现效果实现效果5.2在XSLT样式表中使用XPATH模式o分析分析n确定要显示的数据确定要显示的数据n确定显示统计结果的机制确定显示统计结果的机制n确定需要执行计算的确定需要执行计算的XPath的表达式的表达式n确定需要执行计算的函数确定需要执行计算的函数n创建包含创建包含XPath模式和函数的一个模式和函数的一个XSLT样式样式表表n查看查看XML文档文档5.2在XSLT样式表中
5、使用XPATH模式o确定要显示的数据确定要显示的数据n书籍ISBN号码n书籍名称n单价n对该书籍的销售单的详细资料:o销售号o销售日期o销售数量n该书籍总的销售量5.2在XSLT样式表中使用XPATH模式o确定显示统计结果的机制nXML路径(XPath)语言用来从一个XML文件中搜索和检索信息。XPath将XML文档视为分支和节点相互关联的树形结构。节点可以是任意类型(比如元素、属性、注释、文本或者名称空间)。5.2在XSLT样式表中使用XPATH模式o确定显示统计结果的机制PRODUCTDATAPRODUCTPRODID=“P001”CATEGORY=“TOY”PRODUCTNAMEDESC
6、PRICEQOHMINI BUSTHIS IS FOR CHILDREN75545.2在XSLT样式表中使用XPATH模式o确定需要执行计算的XPath的表达式操作符操作符专专用字符用字符例子例子描述描述/PRODUCTDATA选择PRODUCTDATA的直接的子元素。如果该操作符出现在该模式开始时,它标志应该从根节点来选择该子元素/PRODUCTNAME在任何节点集中搜索指定的元素.PRODUCTNAME指出当前的上下文./PRODUCTNAME选择存在于当前元素父节点内的PRODUCTNAME元素*选择所有元素PRODUCTID作为属性的前缀使用*选择所有的属性:从元素或者属性名中分离名称
7、空间前缀()(PRICE*QUANTITY)用来组合操作PRODUCTID=P001应用一个过滤模式+NUM1+NUM2求两个数之和-NUM1-NUM2求两个数之差*NUM1*NUM2求两个数之积divNUM1 div NUM2NUM1除以NUM2modNUM1 mod NUM2NUM1与NUM2求模5.2在XSLT样式表中使用XPATH模式o确定需要执行计算的函数nstringnnode-setnnumeric5.2在XSLT样式表中使用XPATH模式ostring函数函数函数函数描述描述例子例子string(obj)该函数用来将参数转换成字符串值String(p0001)starts-wi
8、th(str1,str2)如果str1字符串以str2字符串开始,则返回为true,否则返回falseStarts-with(“hello”,”he”)返回true;starts-with(“hello”,“her”)返回为falsecontains(str1,str2)如果str1字符串包含str2字符串则返回为true,否则返回falseContains(“Barbie”,”bar”)返回true;contains(“Barbie”,”bat”)返回为falsesubstring(str,num1,num2)该函数将提取str字符串的一部分,开始于str字符串的num1位置,提取num2指
9、定数量的字符。如果num2参数为空则提取开始位置后面所有的字符。Substring(“world”,1,3)返回“wor”;substring(“world”,1)返回”world”substring-after(str1,str2)该函数提取str1字符串中跟随str2字符串后面的字符串。Substring-after(“MM/DD/YYYY”,”MM”)返回”/DD/YYYY”substring-before(str1,str2)该函数提取str1字符串中在str2字符串之前的字符串。Substring-before(“MM/DD/YYYY”,”YYYY”)返回”MM/DD/”string
10、-length(str)该函数得到str字符串的长度。String-length(“hi”)返回25.2在XSLT样式表中使用XPATH模式onode-set函数函数 函数函数描述描述例子例子last()该函数返回当前选中节点集中的最后一个节点的号码例如第五个节点元素是最后一个节点,则该函数返回5position()该函数返回当前节点在父节点内的索引号一本书有两个author元素,如果现在正在处理第二个author元素,则该函数返回2count(ns)该函数返回XML文档中该节点的个数count(/PRODUCT)将返回PRODUCT节点的个数5.2在XSLT样式表中使用XPATH模式onum
11、eric函数函数函数函数描述描述例子例子number(obj)将参数转化为数字类型number(“32”)返回整数32sum(ns)返回参数节点集中的节点值的和sum(QUANTITY)返回所有QUANTITY节点值的和floor(num)返回小于或者等于参数值的最大的整数floor(-1.3)返回-2celling(num)返回大于或者等于参数值的最小的整数celling(3.3)返回4round(num)将参数四舍五入round(3.6)返回45.2在XSLT样式表中使用XPATH模式o单元练习单元练习酒店管理系统需要对结算信息进行查看,需要显示的信息包括订房编号、客房编号、顾客姓名、顾客
12、身份证号码、折扣、结算金额。需要对结算金额进行统计求和以及求出结算的平均值。5.3 在制表格式中显示数据在制表格式中显示数据 o实例:以表格形式显示书籍内容o问题问题对于书店中销售的书籍的详细资料被存储在一个XML文档中。该书的详细信息(比如书的ISBN号码、名称、价格、作者的姓名)应该以表格的形式显示。每本书籍的作者应该显示在一个单元格中,如果有多个作者,作者与作者之间以逗号分隔。4.3 可扩展样式表(可扩展样式表(XSL)的应用)的应用o实现效果4.3 可扩展样式表(可扩展样式表(XSL)的应用)的应用o分析分析n确定要显示的数据n确定用来制作表格的机制n确定创建一个逗号分离的机制n创建一
13、个样式表n应用样式表并且查看XML文档4.3 可扩展样式表(可扩展样式表(XSL)的应用)的应用o确定要显示的数据确定要显示的数据nBookISBNnBookNamenPricenAuthor4.3 可扩展样式表(可扩展样式表(XSL)的应用)的应用o确定创建一个逗号分离的机制,4.3 可扩展样式表(可扩展样式表(XSL)的应用)的应用o确定用来制作表格的机制标签标签名称名称描述描述Table能使我们指定该表的外观THEAD该元素用来指定表格的标题TBODY该元素作为TR元素和TD元素的父元素TR该元素用来表示表格中的一行TH该元素用来添加列标题TD该元素用来指定显示在列中的数据4.3 可扩展样式表(可扩展样式表(XSL)的应用)的应用o单元练习单元练习客房标准信息需要以表格的形式显示。该详细资料包括的数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电话以及单独卫生间等。必须在一个逗号分离列表中显示该标准客房具有的设施,如“空调,电视机”。表中的每个交替行的详细资料必须以红色显示。提示:使用XPath的mod操作符来检查每个交替的行。如下所示:标标准准编编号号标标准名称准名称房房间间面面积积床位数量床位数量住房住房单单价价设设施施R0001标准122120电视机,电话