关于JavaScript的学习(十八)——JavaScript与XML

第十八章


  JavaScript对XML及其相关技术有相当大的支持。然而,由于缺乏规范,共同的功能却存在一些不同的实现。DOM2级提供了创建空XML文档的API,但没有涉及解析和序列化。既然规范没有对这些功能做出规定,浏览器提供商就各行其实,拿出了自己的实现方案。

IE采取了下列方式:

  • 通过ActiveX对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序。
  • Windows携带了MSXML库,JavaScript能够访问这个库。
  • 这个库包含对基本XML解析和序列化的支持,同时也支持XPath和XSLT等技术。

firefox为处理XML的解析和序列化,实现了两个新类型:

  • DOMParser类型比较简单,其对象可以将XML字符串解析为DOM文档。
  • XMLSerializer类型执行相反的操作,即将DOM文档序列化为XML字符串。

  由于Firefox中的类型比较简单,用户众多,IE9、Opera、Chrome和Safari都像机实现了相同的类型。因此,这些类型也就成为了Web开发中的事实标准。
  DOM3级引入了一个针对XPath API的规范,该规范已经由Firefox、Safari、Chrome和Opera实现。这些API可以让JavaScript基于DOM文档运行任何XPath查询,并且能够返回任何数据的结果。IE以自己的方式实现了对XPath的支持;具体来说,就是两个方法:selectSingleNode()和selectNodes()。虽然与DOM3级API相比还存在诸多限制,但使用这两个方法仍然能够执行基本的XPath功能,即在DOM文档中查找节点或者节点集合。
  与XML相关的最后一个技术是XSLT,没有公开发布的标准针对这种技术的功能定义相应的API/Firefox为通过JavaScript处理转换创建了XSLTProcessor类型;此后不久,Safari、Chrome和Opera也都实现里同样的类型。IE则针对XSTL提供了自己的方案,一个是简单的transformNode()方法,另一个是较为复杂的模板\处理器手段。
  目前,IE、Firefox、Chrome和Opera都能够较好地支持XML。虽然IE的实现与其他浏览器相比差异比较大,但仍然还是有较多的公共功能可供我们实现跨浏览器的方案。

猜你喜欢

转载自blog.csdn.net/qq_36048820/article/details/81078797