JavaScript中的XML编程.ppt
《JavaScript中的XML编程.ppt》由会员分享,可在线阅读,更多相关《JavaScript中的XML编程.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 JavaScript中的XML编程 随着随着XML的流行,的流行,JavaScript开发人员开发人员也迫切希望在客户端也迫切希望在客户端Web开发中应用开发中应用XML。目前的主流浏览器已经提供了对目前的主流浏览器已经提供了对XML的支持,本章将介绍如何在的支持,本章将介绍如何在JavaScript中使中使用浏览器提供的用浏览器提供的XML编程特性。编程特性。本章将主要讨论本章将主要讨论Mozilla Firefox和和Internet Explorer这两种浏览器中的这两种浏览器中的XML编编程方法。程方法。XML基础10.1 浏览器中的XML DOM10.2 浏览器中的XPat
2、h10.3 浏览器中的XSLT10.410.1 XML基础 XML即即可可扩扩展展标标记记语语言言(Extensible Markup Language),是一种平台无关的表示数据的方法。),是一种平台无关的表示数据的方法。使使用用XML创创建建的的数数据据可可以以被被任任何何应应用用程程序序在在任任何何平平台台上上读读取取,甚甚至至可可以以通通过过手手动动编编码码来来编编辑辑和和创创建建XML文文档档,因因为为XML与与HTML一一样样,都都是基于文本的标记语言。是基于文本的标记语言。XML在在数数据据的的表表示示方方面面具具有有很很好好的的灵灵活活性性和和可可扩扩展展性性,例例10-1是是
3、一一个个XML的的示示例例,它它描描述述了了员工的基本信息。员工的基本信息。【例【例10-1】Tom Black M 30 03 C+Java Bill Gates M 40 01 VB 10.1.1 XPath简介 XML可可以以处处理理多多种种数数据据,因因此此必必须须有有一一种种在在XML文文档档中中定定位位数数据据的的方方式式,这这就就是是XPath,它它专专门门用用于于在在XML中中进进行行定定位位匹配。匹配。本本节节将将对对XPath进进行行简简要要介介绍绍,更更深深入入的讨论请读者参考相关文档。的讨论请读者参考相关文档。每每个个XPath表表达达式式由由两两部部分分组组成成:上上
4、下下文节点和节点模式。文节点和节点模式。上下文节点提供了节点模式起始的位置。上下文节点提供了节点模式起始的位置。节节点点模模式式是是由由一一个个或或者者多多个个节节点点选选择择器器组成的字符串。组成的字符串。例例如如,考考虑虑对对例例10-1中中的的XML文文档档使使用用如下的如下的XPath表达式:表达式:Employee/Name/FirstName 如如果果上上下下文文节节点点是是XML文文档档的的根根节节点点,那那么么该该XPath表表达达式式匹匹配配了了Tom和和Bill这两个节点。这两个节点。其其中中Employee、Name和和FirstName是是XML文档中的元素名称。文档中
5、的元素名称。我我们们可可以以在在XPath中中增增加加方方括括号号对对选选择择的节点进行限制。的节点进行限制。例例如如需需要要选选择择年年龄龄大大于于35岁岁的的雇雇员员名名字字,可可以修改以修改XPath表达式如下:表达式如下:EmployeeAge35/Name/FirstName 上上 面面 的的 XPath表表 达达 式式 匹匹 配配 的的 节节 点点 是是Bill,仅仅包包含含了了年年龄龄大大于于35岁的雇员名字。岁的雇员名字。XPath还还支支持持使使用用符符号号匹匹配配XML文文档档中中的的属属性,例如下面的性,例如下面的XPath匹配了匹配了id为为001的雇员名字。的雇员名字
6、。Employeeid=001/Name/FirstName XPath是是一一种种非非常常强强大大的的表表达达式式,使使用用它它可可以很容易地在以很容易地在XML文档中查找指定的节点。文档中查找指定的节点。10.1.2 XSLT简介 XSLT(可可扩扩展展样样式式表表语语言言转转换换)是是XML的的姊姊妹妹语语言言,它它可可以以将将XML转转换换为为任任何何基基于于文文本本的的形式。形式。很很多多应应用用中中使使用用它它将将XML转转换换为为HTML,当当然然,这这只只是是XSLT的的一一种种用用途途。XSLT样样式式表表由由一一些模板组成,这些模板决定了输出文本的格式。些模板组成,这些模板
7、决定了输出文本的格式。仍仍然然考考虑虑例例10-1中中的的XML文文档档,现现在在我我们们希希望望将将雇雇员员的的id和和全全名名(FirstName+LastName)在在HTML页面中输出。格式如例页面中输出。格式如例10-2所示。所示。【例【例10-2】10.2 浏览器中的XML DOM 目目前前只只有有两两个个浏浏览览器器支支持持客客户户端端的的XML处理,它们是处理,它们是IE和和Mozilla浏览器。浏览器。下下面面将将分分别别介介绍绍在在这这两两种种浏浏览览器器中中进进行行XML DOM处理的方法。处理的方法。10.2.1 IE中的XML DOM 在在为为IE添添加加XML编编程
8、程特特性性时时,微微软软选选择了基于择了基于ActiveX技术的技术的MSXML库。库。它它是是微微软软开开发发的的XML开开发发程程序序库库,可可以在以在VB、C+等多种语言中使用。等多种语言中使用。在在JavaScript中中可可以以通通过过ActiveXObject类创建类创建ActiveX对象。对象。以以及及更更低低版版本本IE的的客客户户端端必必须须单单独独安安装装MSXML库库,才才能能使使用用XML编编程程相相关关的的功功能能,及及更更高高版版本本的的IE则则集集成成了了MSXML库库,并并将将其其中中的的ActiveX控控件件设设置置为为安安全全控控件件,使之不受浏览器安全性设
9、置的影响。使之不受浏览器安全性设置的影响。使使用用XML DOM进进行行XML解解析析时时,必必须须解解决决的的问问题题包包括括:创创建建DOM对对象象并并加加载载XML文档、文档、XML节点操作和异常的处理。节点操作和异常的处理。1创建XML文档对象 MSXML库存在多个版本,每个版本具有不库存在多个版本,每个版本具有不同的对象注册名,而我们不能确定用户安装的同的对象注册名,而我们不能确定用户安装的MSXML库版本,在很多情况下客户端还可能安库版本,在很多情况下客户端还可能安装了多个版本的装了多个版本的MSXML库。库。通常的策略是尽可能地使用最新的版本,从通常的策略是尽可能地使用最新的版本
10、,从而获取更高的执行效率和稳定性。而获取更高的执行效率和稳定性。使用例使用例10-4所示的所示的createDocument函数函数可以满足要求,它将依次尝试创建以下版可以满足要求,它将依次尝试创建以下版本的本的ActiveX控件,直到创建成功为止,如控件,直到创建成功为止,如果果createDocument函数返回函数返回false,说明客户,说明客户端未安装端未安装MSXML或者浏览器不是或者浏览器不是Windows平台的平台的IE(Mac平台的平台的IE不支持不支持ActiveX控控件)。件)。以下列出了各种版本以下列出了各种版本MSXML库的库的DOM对象注对象注册名。册名。(1)(2
11、)(3)(4)(5)(6)【例【例10-4】创建创建DOM对象对象2加载XML文档 MSXML的的DOMDocument对对象象可可以以使使用用load方方法法加加载载一一个个指指定定的的URL,也也可可以以使使用用loadXML方法加载方法加载XML的文本内容。的文本内容。当当使使用用load方方法法加加载载XML文文档档时时,有有同步和异步两种模式。同步和异步两种模式。在同步模式下需要将在同步模式下需要将DOMDocument对象的对象的async属性设置为属性设置为false,这样通过该,这样通过该对象的对象的load方法加载方法加载XML时,程序会一直时,程序会一直等待直到等待直到XM
12、L文档加载完成。文档加载完成。/创建创建DOMDocument对象对象var doc=createDocument();/设置为同步模式设置为同步模式=false;/加载加载XML);一一般般来来说说,由由于于网网络络延延时时、应应用用程程序序处处理理等等因因素素,加加载载XML的的过过程程必必然然会会存存在在一一定定的的延延时时,使使用用同同步步模模式式往往往往导导致致浏浏览览器器在在等等待待XML数数据据返返回回的的过过程程中中失失去去响响应应,因因此此在在大大多多数数情情况况下下建建议议使使用用异异步步模模式式,这这也也是是DOMDocument对对象象默默认认的的文文档档加加载载方法。
13、方法。例例10-5所所示示是是使使用用异异步步模模式式加加载载XML文文档的示例代码。档的示例代码。【例【例10-5】加载加载XML文档文档【例【例10-6】加载加载XML文档文档 3访问XML节点 DOMDocument对对象象对对应应于于DOM标标准准中中的的Document接接口口,因因此此DOMDocument对对象象可可以以使使用用标标准准的的DOM方方法法进进行行XML节节点点操操作作,DOMDocument对对象象的的常常用用属属性性如如表表10-1所示。所示。其其中中text和和xml两两个个属属性性是是微微软软对对DOM标标准准的的扩扩展展,分分别别用用于于返返回回节节点点的
14、的文文本本内内容和容和XML文本。文本。表10-1DOMDocument对象常用属性属 性 名 称含 义attributes所有属性节点的列表childNodes所有的子节点firstChild第一个子节点属 性 名 称含 义lastChild最后一个子节点previousSibling上一个兄弟节点nextSibling下一个兄弟节点parentNode父节点documentElement文档的根节点nodeName节点名称nodeType节点类型nodeValue节点值ownerDocument节点所在的文档对象text节点的文本内容xml节点的XML文本【例【例10-7】表10-2 DO
15、MDocument对象常用方法方 法 名 称含 义appendChild将节点作为最后一个子节点附加到父节点中cloneNode创建节点的副本createAttribute创建属性节点createCDATASection创建CDATA节点createComment创建注释节点createDocumentFragment创建文档片段createElement创建元素节点createEntityReference创建实体引用节点createNode根据指定的名称、类型和命名空间创建节点createProcessingInstruction创建处理指令节点createTextNode创建文本节点ge
16、tElementsByTagName根据指定的节点名称返回元素的集合hasChildNodes判断节点是否具有子节点insertBefore将节点插入到指定的子节点之前nodeFromID根据ID返回指定的节点removeChild删除指定的子节点replaceChild替换指定的子节点save将XML文档保存到指定的位置4异常处理 在加载在加载XML文档的过程中,无论使用文档的过程中,无论使用load方法还是方法还是loadXML方法,都有可能发方法,都有可能发生生XML格式不正确的情况。格式不正确的情况。表10-3parseError对象属性属 性 名 称含 义errorCode错误码,e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaScript 中的 XML 编程
限制150内