加载并解析 XML
//加载并解析 XML 文件1 <script type="text/javascript">
2 if (window.XMLHttpRequest)
3 {// code for IE7+, Firefox, Chrome, Opera, Safari
4 xmlhttp=new XMLHttpRequest();
5 }
6 else
7 {// code for IE6, IE5
8 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
9 }
10 xmlhttp.open("GET","/example/xmle/note.xml",false);
11 xmlhttp.send();
12 xmlDoc=xmlhttp.responseXML;
13
14 document.getElementById("to").innerHTML=
15 xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
16 document.getElementById("from").innerHTML=
17 xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
18 document.getElementById("message").innerHTML=
19 xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
20 </script>
//加载并解析 XML 字符串1 <script>
2 txt="<note>";
3 txt=txt+"<to>George</to>";
4 txt=txt+"<from>John</from>";
5 txt=txt+"<heading>Reminder</heading>";
6 txt=txt+"<body>Don't forget the meeting!</body>";
7 txt=txt+"</note>";
8
9 if (window.DOMParser)
10 {
11 parser=new DOMParser();
12 xmlDoc=parser.parseFromString(txt,"text/xml");
13 }
14 else // Internet Explorer
15 {
16 xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
17 xmlDoc.async="false";
18 xmlDoc.loadXML(txt);
19 }
20
21 document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
22 document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
23 document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
24 </script>其他方法 1:通过微软的 XML 解析器来加载 XML
微软的 XML 解析器内建于 Internet Explorer 5 以及更高的版本中。
下面的 JavaScript 片段把一个 XML 文档载入解析器中:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
; xmlDoc.async="false"; xmlDoc.load("note.xml");
- 上面代码的第一个行创建一个空的微软 XML 文档对象。
- 第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
- 第三行告知解析器加载名为 "note.xml" 的 XML 文档。
其他方法 2:在 Firefox 及其他浏览器中的 XML 解析器
下面的 JavaScript 片段把 XML 文档 ("note.xml") 载入解析器:
var xmlDoc=document.implementation.createDocument("","",null)
; xmlDoc.async="false"; xmlDoc.load("note.xml");
- 上面代码的第一个行创建一个空的 XML 文档对象。
- 第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
- 第三行告知解析器加载名为 "note.xml" 的 XML 文档。