ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:51.50KB ,
资源ID:3180374      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3180374.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaScript中的XSLT基础.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

JavaScript中的XSLT基础.doc

1、XSLT 基础XSL 与 XSLTXSL 指扩展样式表语言(EXtensible Stylesheet Language)。它主要被用来对 XML 文档进行格式化,与 CSS 不同,XSL 不仅仅是样式表语言 XSL 主要包括三个部分: XSLT 一种用于转换 XML 文档的语言。 它可以将一个 XML 文件转换成另一种格式的 XML 文件或 XHTML 文件. XPath 一种用于在 XML 文档中导航,定位元素的语言。 XSL-FO , 可扩展样式表语言格式化对象(Extensible Stylesheet Language Formatting Objects) ,用于格式化供输出的 X

2、ML 数据。XSL-FO 目前通常被称为 XSL (尽管这算是一种误解,但这样说是可以的,因为在格式化 XML 方面,XSL-FO 起着和 CSS 一样的作用!) XSLT 指 XSL 转换(XSL Transformations)。 它是 XSL 中最重要的部分。通过 XSLT,您可以向或者从输出文件添加或移除元素和属性。您也可重新排列元素,执行测试并决定隐藏或显示哪个元素,等等。描述转化过程的一种通常的说法是,XSLT 把 XML 源树转换为 XML 结果树。书写 XSLTXSLT 文件本身也是 XML 文件,一般 以.xml .xsl .xslt 几种文件后缀名保存.XSLT 遵循 XM

3、L 的语法,文件开头一般都加有 XML 声明,XML 声明之后是文档根元素 stylesheet 或 transform(两者之一),并且使用 version 属性声明 XSLT 版本,目前版本是 1.0,2.0 还在草案中,XSLT 的所有内置元素都从属于“http:/www.w3.org/1999/XSL/Transform“命名空间,所以应该在文档根元素上声明一个 xsl 或 xs 的命名空间! 上面创建了一个最基本的 XSLT 文件,将其应用于任何 XML 文档,在支持XSLT 的浏览器打开该 XML 文档,会看到所有的文档显示了出来,而标签没有了!事实上,在浏览器中真正显示的是 HT

4、ML,XSLT 将 XML 转换成了 HTML.我们可以更进一步指定转换成 HTML 的版本,比如转换成 XHTML!output 元素定义输出文档的格式。method 属性可接受xml,html,text,name 四种格式;version 设置输出格式的 W3C 版本号(仅在 method=“html“ 或 method=“xml“ 时使用); encoding 设置输出中编码属性的值(对于 HTML 将会输出成 charset 的值); doctype-public 规定 DTD 中要使用的公共标识符; doctype-system 规定 DTD 中要使用的系统标识符; indent 规

5、定在输出结果树时是否要增加空白,该值必须为 yes 或 no。template 模版可以用 template 来定义模版.template 元素必须有 match 或 name 两个属性之一或两者都有,match 属性用以并联 XML 中的元素,其值为一个 XPath 表达式,XPath 表达式所选取的元素会被应用模版而进行转换. name 属性为模版定义名称,用以在其它地方引用.一个 template 元素里面包含的是一些将被输出的HTML 或 XML 标签. Name对于使用一个没有任何模版的 XSLT 的 XML 文件,在浏览器中显示时只是简单的将其中的文本显示出来,应用了上面的 XSL

6、T 之后,根元素 bank 下面子元素p 的子元素 name 的值都将会显示成一个加粗的 Name!而其它的则只是普通的文本.但这样并没有什么意义,我们还可以更进一步,将被 XPath 表达式“/bank/p/name“选取的元素的值显示出来-value-of 元素!value-of 元素的 select 属性是必须的,属性值是一个 XPath 表达式,指定一个节点(如果是多节点,value-of 中会获取第一个节点的值),然后将其里面的文本输出!将上面的模版替换成下面的,输出后就会将所有的 name 加粗!注意,任何正文内容的输出都应该放在 template 元素里面! 注意上面的 valu

7、e-of 的 select 是使用的 “.“ ,而没有使用“/bank/p/name“,因为“/bank/p/name“返回的是所有的 name 元素,“ . “表示模版当前应用的那个元素!可以定义多个模版,如下:-当多个模版的 match 表达选取节点重叠时,后出现的模版的格式会覆盖先出现的,可以使用 template 元素的 priority 属性对模版的优先组进行编号,其值是一个数字,越大优先级越高! 这样,便给 name,age,money 这些元素都进行了格式化输出,但现在输出的HTML 代码顺序仍然是按照在 XML 源文件中出现的顺序出现的.当需要对整个 XML文档进行格式化输出的

8、时候,可以将 match 属性设为“/“使用上面的模版,将会使 XML 文档在浏览器中没有任何输出.可以在应用于根节点的模版中加上 HTML 标签,以输出完整的 HTML 文档!XSLT一个 HTML 页面这样,即使定义了其它模版,它们的输出也不会出现在浏览器中,因为上面的模版覆盖了其它应用于子节点的模版的输出,要在其中包含其它模版的内容,可以使用 XSLT 的 apply-templates 元素来应用模版,该元素有两个属性,select属性值是一个 XPath 表达式,XPath 表达式选取的节点及其子节点将被应用模版. 如果没有为这些节点定义模版,则直接输出节点的值.如果 apply-t

9、emplates 元素不指定 select 属性,则将给当前节点(template 元素的 match 属性所匹配的节点)的所有后代节点应用模版,如果没有定义模版,则直接输出所有节点的值. 下面的代码将直接输出所有节点的值XSLT 中有一个规定:如果一个节点没有任何可用的 template,则将这个节点中所有文本节点的值返回! 可以指定 select 属性,指明哪些节点将应用模版并输出在这个地方,这样就可以不以 XML 源文件中的顺序输出数据了!还可以使用 call-template 调用指定的模版,call-template 元素的 name属性指定要调用模版的 nameattribute

10、给元素添加属性使用 attribute 元素,可以在转换时给元素动态添加属性!其语法很简单,下面是一个给 img 元素添加值为“test.jpg“的 src 属性的代码:test.jpgfor-each 节点遍历XSLT 中的 for-each 元素允许您在 XSLT 中进行循环。该元素的 select 属性与其它元素的 select 属性一样,其值是一个 XPath 表达式,被 XPath 表达式选取的元素将被遍历!上面的代码将遍历所有根元素 bank 的子元素 p 的 name 子元素并加以格式化后输出它的值. 注意,value-of 元素的 select 的值“.“表示选取当前节点,在f

11、or-each 的内部,当前节点为 for-each 当前遍历到的节点! sort 排序sort 元素用于对结果进行排序。sort 元素需要放在 for-each 元素内部.sort 元素的 select 属性值为选取排序依据节点的 XPath 表达式,data-type 属性有两个取值(text|number),指明是按字母顺序排序还是按数字大小排序! 另外,它还有个 order 属性,可以指定是按正顺还是倒序排序,取值为(ascending|descending),默认是 ascending(正序)!if 条件测试在 XSLT 中还可以使用 if 元素进行条件判断,该元素的 test 属性

12、值为一个条件测试 XPath 表达式,当值计算结果是真的时候才处理 if 元素中的内容!上面的代码用以输出 money 排前三名的成年人. 注意,在 if 元素的 test 属性中,XPath 表达中的一些特殊字符(如大于和小于)必须写成实体引用!choose when.otherwise. 多重条件测试出于习惯,见到 if 语句可能会想到 if.else 语句,但 XSLT 中并没有if.else 语句,取而代之的是即有 if.else 功能,又有 switch.case 功能的choose 元素,choose 元素有两个子元素 when 与 otherwise,相当于 else if 与e

13、lse ,或者,when 相当于 case 语句,otherwise 相当于 default.when 元素的test 属性值同样是一个 XPath 表达式,当这个表达式返回真的时候,when 的子元素才会显示!otherwise 没有 test 属性,当所有的 when 元素的 test 都失败后,处理 otherwise 子元素!PHPer 就是 PHP 程序员的意思!好好 Coding,天天向上!不懂!其它人浏览器中的 XSLT只要有 XML 与 XSLT 解释引擎,就可以在任何地方使用任何语言利用 XSLT将 XML 转换成 HTML 或其它文档,并且使用不同的语言并不会影响转换结果.

14、也就是说,这种转换是与语言无关的,既可以在服务器端进行转换后,返回 HTML 页面,也可以客户端进行转换,它们的效果都是一样的.而且在客户端对 XML 文件进行转换,可以减轻服务器的负担.在一个引入了 XSLT 文件的 XML 文件,浏览器会自动对其进行转换.但是,XML一般并不是在浏览器中显示,而是用来读取数据.当使用其它语言来手动转换时,需要将 xml-stylesheet 这样的 PI 去掉,这样,XML 文件可使用多个不同的 XSL 样式表来进行转换,增加了灵活性。IE 中的 XSLT与 IE 支持 XML DOM 一样,IE 中 XSLT 相关 API 显得十分简单,同时 IE 对X

15、SLT 的支持也很有限!下面是在 IE 中将一个 XMLDOM 使用 XSLT 转换成 HTML 的示例:/载入 XML 数据文件var xml = new ActiveXObject(“Microsoft.XMLDOM“);xml.async = false;xml.load(“test.xml“);/载入 XSLT 文件,XSLT 也是作为 XML 文件载入的var xsl = new ActiveXObject(“Microsoft.XMLDOM“);xsl.async = false;xsl.load(“test.xsl“);/直接在要转换的 DOM 上调用 transformNode

16、 方法,传入XSLT DOM,返回字符串document.write(xml.transformNode(xsl);Mozilla 中的 XSLT与 Mozilla 对 XML DOM 的支持一样,它对 XSLT 的支持更标准但更复杂!Mozilla 使用一个 XSLTProcessor 对象来处理与 XSLT 有关的转换./载入 XML 数据var xml = document.implementation.createDocument(“,“,null);xml.async =false;xml.load(“test.xml“);/载入 XSLTvar xsl = document.imp

17、lementation.createDocument(“,“,null);xsl.async =false;xsl.load(“test.xsl“);/创建 XSLTProcessorvar xslPro = new XSLTProcessor();xslPro.importStylesheet(xsl);/导入 XSLT/使用 transformToDocument 将 XML 按 XSLT 进行转换,返回新文档的 DOMvar result = xslPro.transformToDocument(xml);/要将返回的 DOM 转换成字符串,还要使用 XMLSerializer 对象var serializer =new XMLSerializer();var html = serializer.serializeToString(result);document.write(html);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。