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");
}