欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    JavaScript中的XML编程.ppt

    • 资源ID:5575442       资源大小:939KB        全文页数:59页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JavaScript中的XML编程.ppt

    第10章 JavaScript中的XML编程,随着XML的流行,JavaScript开发人员也迫切希望在客户端Web开发中应用XML。目前的主流浏览器已经提供了对XML的支持,本章将介绍如何在JavaScript中使用浏览器提供的XML编程特性。本章将主要讨论Mozilla Firefox和Internet Explorer这两种浏览器中的XML编程方法。,10.1 XML基础,XML即可扩展标记语言(Extensible Markup Language),是一种平台无关的表示数据的方法。使用XML创建的数据可以被任何应用程序在任何平台上读取,甚至可以通过手动编码来编辑和创建XML文档,因为XML与HTML一样,都是基于文本的标记语言。XML在数据的表示方面具有很好的灵活性和可扩展性,例10-1是一个XML的示例,它描述了员工的基本信息。,【例10-1】employees.xml Tom Black M 30 03 C+Java,Bill Gates M 40 01 VB,10.1.1 XPath简介,XML可以处理多种数据,因此必须有一种在XML文档中定位数据的方式,这就是XPath,它专门用于在XML中进行定位匹配。本节将对XPath进行简要介绍,更深入的讨论请读者参考相关文档。,每个XPath表达式由两部分组成:上下文节点和节点模式。上下文节点提供了节点模式起始的位置。节点模式是由一个或者多个节点选择器组成的字符串。例如,考虑对例10-1中的XML文档使用如下的XPath表达式:Employee/Name/FirstName,如果上下文节点是XML文档的根节点,那么该XPath表达式匹配了Tom和Bill这两个节点。其中Employee、Name和FirstName是XML文档中的元素名称。我们可以在XPath中增加方括号对选择的节点进行限制。,例如需要选择年龄大于35岁的雇员名字,可以修改XPath表达式如下:EmployeeAge35/Name/FirstName 上面的XPath表达式匹配的节点是Bill,仅包含了年龄大于35岁的雇员名字。XPath还支持使用符号匹配XML文档中的属性,例如下面的XPath匹配了id为001的雇员名字。Employeeid=001/Name/FirstName XPath是一种非常强大的表达式,使用它可以很容易地在XML文档中查找指定的节点。,10.1.2 XSLT简介,XSLT(可扩展样式表语言转换)是XML的姊妹语言,它可以将XML转换为任何基于文本的形式。很多应用中使用它将XML转换为HTML,当然,这只是XSLT的一种用途。XSLT样式表由一些模板组成,这些模板决定了输出文本的格式。仍然考虑例10-1中的XML文档,现在我们希望将雇员的id和全名(FirstName+LastName)在HTML页面中输出。格式如例10-2所示。【例10-2】Employees.html,10.2 浏览器中的XML DOM,目前只有两个浏览器支持客户端的XML处理,它们是IE和Mozilla浏览器。下面将分别介绍在这两种浏览器中进行XML DOM处理的方法。,10.2.1 IE中的XML DOM,在为IE添加XML编程特性时,微软选择了基于ActiveX技术的MSXML库。它是微软开发的XML开发程序库,可以在VB、C+等多种语言中使用。在JavaScript中可以通过ActiveXObject类创建ActiveX对象。,IE 4.0以及更低版本IE的客户端必须单独安装MSXML库,才能使用XML编程相关的功能,IE 5.0及更高版本的IE则集成了MSXML库,并将其中的ActiveX控件设置为安全控件,使之不受浏览器安全性设置的影响。使用XML DOM进行XML解析时,必须解决的问题包括:创建DOM对象并加载XML文档、XML节点操作和异常的处理。,1创建XML文档对象,MSXML库存在多个版本,每个版本具有不同的对象注册名,而我们不能确定用户安装的MSXML库版本,在很多情况下客户端还可能安装了多个版本的MSXML库。通常的策略是尽可能地使用最新的版本,从而获取更高的执行效率和稳定性。,使用例10-4所示的createDocument函数可以满足要求,它将依次尝试创建以下版本的ActiveX控件,直到创建成功为止,如果createDocument函数返回false,说明客户端未安装MSXML或者浏览器不是Windows平台的IE(Mac平台的IE不支持ActiveX控件)。,以下列出了各种版本MSXML库的DOM对象注册名。(1)(2)(3)(4)(5)MSXML2.DOMDocument(6)Microsoft.DOMDocument,【例10-4】创建DOM对象,2加载XML文档,MSXML的DOMDocument对象可以使用load方法加载一个指定的URL,也可以使用loadXML方法加载XML的文本内容。当使用load方法加载XML文档时,有同步和异步两种模式。在同步模式下需要将DOMDocument对象的async属性设置为false,这样通过该对象的load方法加载XML时,程序会一直等待直到XML文档加载完成。,/创建DOMDocument对象var doc=createDocument();/设置为同步模式doc.async=false;/加载XMLdoc.load(books.xml);,一般来说,由于网络延时、应用程序处理等因素,加载XML的过程必然会存在一定的延时,使用同步模式往往导致浏览器在等待XML数据返回的过程中失去响应,因此在大多数情况下建议使用异步模式,这也是DOMDocument对象默认的文档加载方法。例10-5所示是使用异步模式加载XML文档的示例代码。,【例10-5】加载XML文档【例10-6】加载XML文档,3访问XML节点,DOMDocument对象对应于DOM标准中的Document接口,因此DOMDocument对象可以使用标准的DOM方法进行XML节点操作,DOMDocument对象的常用属性如表10-1所示。其中text和xml两个属性是微软对DOM标准的扩展,分别用于返回节点的文本内容和XML文本。,表10-1DOMDocument对象常用属性,【例10-7】books.xml,表10-2 DOMDocument对象常用方法,4异常处理,在加载XML文档的过程中,无论使用load方法还是loadXML方法,都有可能发生XML格式不正确的情况。,表10-3parseError对象属性,【例10-8】XML DOM异常处理,10.2.2 Mozilla中的XML DOM,与IE的做法不同,Mozilla浏览器将XML DOM作为其JavaScript实现的一部分,因此Mozilla浏览器中的XML特性可以在各个平台的Mozilla浏览器中使用,而且Mozilla的XML DOM实现了对DOM Level 2的支持。,1创建XML文档对象,在Mozilla浏览器中创建XML文档对象的方法如下所示:document.implementation.createDocument(namespaceURI,rootname,doctype),2加载XML文档,在Mozilla中也可以使用load方法加载指定URL的XML文档,默认情况下它采用异步加载模式。如果需要采取同步的模式加载XML文档,那么必须将DOM对象的async属性设置为false。Mozilla中的XML文档对象在加载XML的过程中不存在readyState属性从1到4的变化。当文档加载完成之后,DOM对象将被触发load事件,通常在load事件的处理函数中进行XML文档的处理,如例10-9所示。,【例10-9】加载XML文档【例10-10】加载XML字符串,3访问XML节点,Mozilla对XML DOM的实现是完全符合DOM标准的,因此表10-1和表10-2中列举的绝大多数属性和方法都可以在Mozilla浏览器中使用,调用方法也是相同的。需要特别说明的是,text和xml这两个属性,它们是微软对DOM标准的扩展,因此Mozilla浏览器不支持它们。但是在Mozilla中可以通过其他的方式实现类似的功能。,以下的getText方法将会返回节点中的文本内容,该方法通过递归方式遍历了节点的所有叶子节点。在Mozilla中需要特别注意的问题是空白文本节点也会被遍历,这里需要将nodeValue(节点值)使用trim函数进行处理,如例10-11所示。,【例10-11】序列化XML节点(普通文本)【例10-12】序列化XML节点(XML格式),4异常处理,Mozilla中提供了相应的机制对加载XML时可能发生的异常进行处理,与IE不同,当发生异常时Mozilla会通过XML文档对象加载一个包含错误信息的XML文档。例如将books.xml稍作修改,使其格式不正确,如例10-13所示。,10.3 浏览器中的XPath,10.3.1 IE中的XPath 在IE中使用XPath非常简单,直接使用selectNodes或者selectSingleNode方法即可进行XPath查询。考虑以下的XML文档:,10.3.2 Mozilla中的XPath,Mozilla中XPath的实现方式是符合DOM Level 3中关于XPath的接口定义的,尽管IE的selectNodes方法十分直观,但Mozilla的方式可以实现更加强大的功能。在Mozilla中进行XPath查询需要使用两个关键的对象:XPathEvaluator和XpathResult。它们分别用于执行XPath查询和保存查询结果。,【例10-14】Mozilla浏览器中的XPath查询,表10-4XPath结果集类型定义,续表,【例10-15】books_ns.xml【例10-16】命名空间解析函数【例10-17】Mozilla中的XPath查询,10.4 浏览器中的XSLT,显然,IE和Mozilla的XSLT实现机制也是不同的,IE使用基于ActiveX对象的解决方案,而Mozilla则使用其内置的XSLTProcessor对象。10.4.1 IE中的XSLT IE中提供了两种不同的方式进行XSLT转换:使用DOMDocument和XSLTemplate对象。例10-18和例10-19是本节将要使用的XML文档(books.xml)和XSLT样式表(books.xsl)。,【例10-18】books.xml【例10-19】books.xsl,1基于DOMDocument的XSLT转换,如果XSLT转换只需进行一次,以后不会再使用同一个XSLT样式表,那么使用DOMDocument对象的transformNode方法是最简单直接的。具体步骤是首先分别加载XML文档和XSLT样式表,然后调用DOMDocument对象的transformNode方法,该方法的输入参数是与XSLT样式表对应DOMDocument对象,例10-20所示是具体的实现代码。【例10-20】基于DOMDocument的XSLT转换,2基于XSLTemplate的XSLT转换,MSXML还提供了另一个对象用于XSLT转换,它就是XSLTemplate,使用它进行XSLT转换的步骤如下:(1)创建DOM对象并且加载XML文档;(2)创建DOM对象并且加载XSLT样式表,需要特别注意的是,为了在XSLTemplate对象中使用样式表,必须创建线程安全的DOM对象,它对应于MSXML库中的另一个ActiveX控件;,(3)创建XSLTemplate对象,并且将其stylesheet属性设置为XSLT样式表的DOM对象;(4)通过XSLTemplate对象创建XSLProcessor对象,并且将其input属性设置为XML文档的DOM对象;(5)调用XSLProcessor对象的transform方法执行XSLT转换。具体的实现代码如例10-21所示。,【例10-21】基于XSLTemplate的XSLT转换【例10-22】books.xsl【例10-23】books.xsl,10.4.2 Mozilla中的XSLT,Mozilla中进行XSLT转换的核心对象是XSLTProcessor,它类似于IE中的XslProcessor对象,使用它进行XSLT转换的基本步骤如下:(1)创建DOM对象加载XML文档和XSLT样式表;(2)创建XSLTProcessor对象,导入XSLT样式表(importStylesheet方法);(3)执行样式转换(transformToDocument或者transformToFragment方法)。,例10-24所示是将books.xml和books.xsl进行XSLT转换的示例代码:【例10-24】Mozilla中的XSLT转换,例10-24所示是将books.xml和books.xsl进行XSLT转换的示例代码:【例10-24】Mozilla中的XSLT转换,(a)图册模式(每行显示5张图片),(b)图册模式(每行显示3张图片),(c)幻灯片模式图10-1 多种查看方式的相册,【例10-25】album.html(HTML部分)【例10-26】album.html(JavaScript部分)【例10-27】photos.xml【例10-28】template1.xsl【例10-29】template2.xsl【例10-30】XsltTransform函数,小 结,本章首先对XML以及相关的XPath和XSLT技术作了简单介绍,然后分别介绍了IE和Mozilla中XML编程特性,并且通过示例说明了它们的使用方法。IE提供的基于ActiveX控件的解决方案在使用时比较方便,而Mozilla的方式更加接近标准,功能更强大,但是使用方法比IE复杂得多。本章介绍的方法只能在IE和Mozilla浏览器中使用,对于其他的浏览器,可以考虑使用Google AJAXSLT脚本库(),它完全基于字符串的处理实现了对XML DOM、XPath和XSLT的支持。,

    注意事项

    本文(JavaScript中的XML编程.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开