Preface:本文是W3Schools上《XML指南》Javascript篇的学习笔记。其中大部分内容是对指南的翻译总结。由于原文的例子更详尽生动,如果各位想阅读原文可以到这个网址http://www.w3schools.com/xml/default.asp。 同时,W3Schools提供了测试,大家可以测测自己对XML的理解程度。

一、XML解析器(Parser)

        所有的现代浏览器都会内建一个XML解析器(Parser)来读取和操作XML。Parser将XML读入内存中将之转换为一个DOM(Documnet Object Model)对象。我们可以使用JavaScript存取到这个对象。(备注,Microsoft的Parser可以加载XML文件和字符串中的XML内容,而其他的一些Browser则分别使用不同的Parser去实现。)所有的Parser都可以遍历XML树,读取、插入、删除节点(elements)和attribute。在谈论XML解析时,我们是用Nodes(节点)来代替Elements(元素)。

        一般我们会从两个地方加载XML:XML文件或者包含XML的string(字符串)。

使用MicrosoftParser加载XML文件
Xml学习笔记(二)Javascript篇var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
Xml学习笔记(二)Javascript篇xmlDoc.async
="false";
Xml学习笔记(二)Javascript篇xmlDoc.load(
"note.xml"); 
Xml学习笔记(二)Javascript篇
使用Parser读取保存在string(字符串)中的XML内容
Xml学习笔记(二)Javascript篇var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
Xml学习笔记(二)Javascript篇xmlDoc.async
="false";
Xml学习笔记(二)Javascript篇xmlDoc.loadXML(txt);

注意以上是使用同一个对象的不同方法去实现的。其他的Browser则是用不同的对象去实现。
Xml学习笔记(二)Javascript篇var xmlDoc=document.implementation.createDocument("","",null);
Xml学习笔记(二)Javascript篇xmlDoc.async
="false";
Xml学习笔记(二)Javascript篇xmlDoc.load(
"note.xml");

Xml学习笔记(二)Javascript篇var parser=new DOMParser();
Xml学习笔记(二)Javascript篇
var doc=parser.parseFromString(txt,"text/xml");

二、XML DOM

      DOM(Document Object Model)定义了一种标准的方式去存取和操作XML文件。DOM将XML视作一个树结构。通过DOM可以增加、修改、删除Element,同时可以修改包括Element的Attribute和Element包含的内容(text)。我们将一个Element及其包含的所有东西(Attribute、Text)称作一个Node。

以下是读取<to>的节点的语句:
Xml学习笔记(二)Javascript篇xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
和用HTML的DOM读取一个> Xml学习笔记(二)Javascript篇document.getElementById("to").innerHTML

相关文章: