2007/08/23 | Parse XML data in IE or other browsers
类别(天天向上) | 评论(0) | 阅读(45) | 发表于 15:40

To manipulate an XML document, you need an XML parser. The parser loads the document into your computer's memory. Once the document is loaded, its data can be manipulated using the DOM. The DOM treats the XML document as a tree.

There are some differences between Microsoft's XML parser and the XML parser used in Mozilla browsers.

                                                                                       --------from w3school

所以在IE和其他的瀏覽器中裝載外部XML文件數據,需要用不同的方法,,ActiveXObject只能在IE中使用

並且任何對數據的操作需要在XML完全裝載完畢之後,即要記得寫onload或者xmlDoc.async=false;

具體操作方法可參考如下一段示例,,它的目的是在頁面輸出books.xml中所有book節點的category屬性值

<script type="text/javascript" language="javascript">
//load xml file


 //code for Mozilla, Firefox, Opera, etc
 if(document.implementation && document.implementation.createDocument)
 {
  var xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.load("books.xml");
  xmlDoc.onload=test;
 }


 //code for IE
 else if(window.ActiveXObject)
 {
  var xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
  xmlDoc.load("books.xml");
  xmlDoc.onload=test(); 
 }


 else
 {
  alert('Your browser cannot handle this script');
 }
 


 function test()
 {
  var x=xmlDoc.getElementsByTagName("book");
  for(i=0;i<x.length;i++)
  {
   var attlist=x[i].getAttribute("category");
   document.write(attlist + "<br />")
  }
 }
</script>

而解析xml字串的話,就需要像下面這樣做

// code for IE
if (window.ActiveXObject)
  {
  var doc=new ActiveXObject("Microsoft.XMLDOM");
  doc.async="false";
  doc.loadXML(text);
  }


// code for Mozilla, Firefox, Opera, etc.
else
  {
  var parser=new DOMParser();
  var doc=parser.parseFromString(text,"text/xml");
  }

0

评论Comments