- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 XSL转换XML 8.1 概述 8.2 一个XSL文档的讨论 8.3 XSL样式表 8.4 模板规则 8.5 样式表设计 8.1 概述 本章讨论XML文档的另一种转换技术——XSL(XML stylesheet language-XML样式表语言)。 W3C在推出XML 1.0规范后,便开始开发符合XML规范要求的转换技术,这就是XSL。 XSL包含两个部分:一个是XSLT(XSL Transformation),另一个是定义格式的XML词表。XSL定义一个XML文档的样式,这个定义用XSLT描写XML文档是如何转换成另一个使用格式化词表的XML文档的。 8.1 概述 1999年11月16日,W3C发布了XSLT 1.0。在2001年12月20日发布了XSLT 2.0,之后相继推出7个修订版。 XSLT2.0规范包含:样式表结构,数据模型,XSLT语言,模式,模版规则……等内容。本书的XSLT以2.0规范作为蓝本进行讨 8.2 一个XSL文档的讨论 在例2.1中我们给出了一个XML文档,现在着手设计一个简单的XSL转换文档来进行转换,在后续的章节逐步深入展开讨论。 例8.1 根据例2.1的XML文档,设计一个简单的XSL文件进行转换。 图8.1 例2.1 XML文档的树型结构 分析:在例2.1的XML文档中根元素是booklist,在bookist下有若干个book子元素,book下有name、author、press、pubdate、price五个子元素和一个属性isbn。文档的结构如图8.1示。用XSL格式化该XML文档,设计要求为: 8.2 一个XSL文档的讨论 ①?为根元素建立容器,容纳其所有的子元素。 ②?每个book显示在屏幕的一个行区域。 ③? 每个book的子元素显示成一个单元。 我们可以为例2.1设计一个XSL(文件名:ch8-1.xsl): 1?xml version=1.0 encoding=GB2312? 2xsl:stylesheetversion=2.0 xmlns:xsl=/1999/XSL/Transform 3 xsl:template match=/ 4 html 5 headtitle图书信息/title/head 6 center 7 body 8 pfont size=“6” color=“teal” face=“隶书”图书信息 /font/p 8.2 一个XSL文档的讨论 9 xsl:for-each select=booklist/book 10 pxsl:value-of select=name/ 11 xsl:value-of select=author/ 12 xsl:value-of select=press/ 13 xsl:value-of select=pubdate/ 14 xsl:value-of select=price//p 16 /body 15 /xsl:for-each 17 /center 18 /html 19 /xsl:template 20 /xsl:stylesheet 8.2 一个XSL文档的讨论 程序说明: ① XSL程序是符合XML规范的文档,所以,第1行是该文档为XML文档的声明。 ② 第2行的xsl:stylesheet声明此文件是XSL的表单文件,其中的version声明该文档的版本号,xmlns:xsl属性给出此XSL表单文件的名称空间。该声明需要结束符/xsl:stylesheet关闭(20行)。 ③3-19行是一个整体,用xsl:template /xsl:template定义一个模板,其中的属性match=“/”用来选择该模板从根元素开始构建一个容器。 8.2 一个XSL文档的讨论 ④ 4-18行,借助HTML来显示XML元素内容。 ⑤ 9-15行使用了循环命令xsl:for-each,其中的属性select用来筛选出显示的元素,这是一个XPath表达式。作用是组织循环,显示booklist下的所有book元素。 ⑥10-14行使用取值命令xsl:value-of取出个元素的值,其中的select用来筛选某个具体的元素值。为了显示成一行,使用HTML的段落标记元素p/p来划分段落。每一个元素值后用顿号“、”分隔。 ⑦当设计好上述的XSL文档后,在例2.1的第二行加上: ?xml-stylesheet type=text/xsl href=ch8-1.xsl? 8.2 一个XSL文档的讨论 然后在浏览器上显示结果如图8.2所示。 8.2 一个XSL文档的讨论 1.?什么是X
文档评论(0)