第18章 JavaScript与XML
曾几何时,XML一度成为存储和通过因特网传输结构化数据的标准。此前,由于浏览器无法解析XML数据,很多开发人员都要动手编写自己的XML解析器。而自从DOM出现后,所有浏览器都内置了对XML的原生支持(XML DOM),同时也提供了一系列相关的技术支持。
浏览器对XML DOM的支持:
(1)DOM2级核心
支持DOM2级的浏览器中创建一个空白的、文档元素为<root>的XML文档:
var xmldom = document.implementation.createDocument(“”,”root”,null);
(2)DOMParser类型
为了将XML解析为DOM文档,浏览器引入了DOMParser类型。在解析XML之前,首先必须创建一个DOMParser实例,然后再调用parseFromString()方法。
(3)XMLSerializer类型
功能:将DOM文档序列化为XML字符串
(4)IE8及之前版本中的XML
事实上,IE是第一个原生支持XML的浏览器,而这一支持是通过ActiveX对象实现的。
load()可以同步或异步加载xml文档,onreadystatechange事件处理程序中readyState为4表示已经完全加载。
虽然可以通过XML DOM文档对象加载XML文件,但公认的还是使用XMLHttpRequest对象比较好。
(5)跨浏览器处理XML
浏览器对XPath的支持:
XPath是设计用来在DOM文档中查找节点的一种手段,因而对XML处理也很重要。
(1)DOM3级XPath
(2)IE中的XPath
(3)跨浏览器使用XPath
浏览器对XSLT的支持:
XSLT是与XML相关的一种技术,它利用XPath将文档从一种表现形式转换成另一种表现形式。没有正式的API。
(1)IE中的XSLT
(2)XSLTProcessor类型
(3)跨浏览器使用XSLT
第19章 E4X
2002年,由BEA Systems为首的几家公司建议为ECMAScript增加一项扩展,以便在这门语言中添加原生的XML支持。
E4X的类型:
作为对ECMAScript的扩展,E4X定义了如下几个新的全局类型:
1.XML:XML结构中的任何一个独立的部分;
2.XMLList:XML对象的集合;
3.Namespace:命名空间前缀与命名空间URI之间的映射;
4.QName:由内部名称和命名空间URI组成的一个限定名。
(1)XML类型:
Var x = new XML();
XML类型的toXMLString()方法会返回