1. 加載XML文件
方法1:ajax方式。代碼以下:html
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("GET", "data.xml", false); xhr.send(null); var xmlDoc = xhr.responseXML; console.log(xmlDoc);
(關於XMLHttpRequest對象的用法,請參加 http://www.w3school.com.cn/xmldom/dom_http.asp)node
注意,代碼第二行的「false」,表示不用異步。若是這裏改成「true」,那麼xmlDoc將獲得null。由於js的異步操做,不會等待文件加載完,就直接執行下面的語句了。因此,咱們這裏必須設置爲「false」,表示必須等待文件加載完,再執行如下操做,這樣才能獲得正確的xmlDoc。ajax
這種方式兼容全部高級瀏覽器,建議採用這種方式加載。跨域
方法2:IE的方式。代碼以下:瀏覽器
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.load("note.xml");
console.log(xmlDoc);
經過IE特有的ActiveXObject("Microsoft.XMLDOM")對象的load()方法加載文件。安全
注意,這裏仍是設置了異步是false,緣由和方法1的同樣。網絡
方法3:Firefox的方式,代碼以下:dom
var xmlDoc = document.implementation.createDocument("", "", null); xmlDoc.async = "false"; xmlDoc.load("note.xml"); console.log(xmlDoc);
關於跨域加載:安全起見,現代瀏覽器不能跨域訪問,即只能加載本機上的xml文件。異步
2. 加載XML字符串
先看代碼:async
1 function LoadXmlText() { 2 3 //拼接XML字符串 4 var txt = ''; 5 txt = txt + "<note>"; 6 txt = txt + "<to>George</to>"; 7 txt = txt + "<from>John</from>"; 8 txt = txt + "<heading>Reminder</heading>"; 9 txt = txt + "<body>Don't forget the meeting!</body>"; 10 txt = txt + "</note>"; 11 12 13 if (window.DOMParser) { 14 //非IE瀏覽器 15 xmlDoc = (new DOMParser()).parseFromString(txt, "text/xml"); 16 } else { 17 //IE瀏覽器 18 xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 19 // 或者:xmlDoc = new ActiveXObject("MSXML2.DOMDocument"); 20 21 xmlDoc.async = "false"; //不啓用異步,保證加載文件成功以前不會進行下面操做 22 xmlDoc.loadXML(txt); 23 } 24 25 console.log(xmlDoc); 26 }
若是瀏覽器支持window.DOMParser對象,則直接用它的parseFromString()方法加載xml字符串。
IE瀏覽器不支持window.DOMParser,則用loadXML()加載。
代碼中註釋都寫的很親你清楚。