加载并解析 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");
  1. 上面代码的第一个行创建一个空的微软 XML 文档对象。
  2. 第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
  3. 第三行告知解析器加载名为 "note.xml" 的 XML 文档。

其他方法 2:在 Firefox 及其他浏览器中的 XML 解析器

下面的 JavaScript 片段把 XML 文档 ("note.xml") 载入解析器:

var xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("note.xml");
  1. 上面代码的第一个行创建一个空的 XML 文档对象。
  2. 第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
  3. 第三行告知解析器加载名为 "note.xml" 的 XML 文档。

posted @ 2011-03-25 13:40  xfyn  阅读(458)  评论(0编辑  收藏  举报