測試:
demo.xml中的內容:
js文件內容:
window.onload=function(){ //var v=returnXMLDOM(); //v.loadXML('<root><user>Lee</user></root>');//第一種 加載xml字符 //alert(v.xml);//序列化 打印出xml字符串 //第二種加載方式:加載外部xml文件 var v=returnXMLDOM();//得到創建的對象 v.load('demo.xml');//同一個目錄下這樣寫 不然還需要加上文件的路徑 alert(v.xml);//進行序列話 打印字符串 //操作這些xmldom節點 和之前的dom操作方法一樣 var node= v.getElementsByTagName("B")[0]; //alert(node.nodeName);//B元素節點 所以nodename屬性的值為B //alert(node.nodeValue);//元素節點的nodevalue屬性值為null //alert(node.nodeType);//nodetype值為1 //現在需要通過B節點得到c節點 var cnode=node.childNodes[0];//得到第一個c節點 也是一個元素節點 alert(cnode.nodeName);//c元素節點 所以nodename屬性的值為c alert(cnode.nodeValue);//元素節點的nodevalue屬性值為null alert(cnode.nodeType);//nodetype值為1 alert(cnode.firstChild.nodeValue);//打印第一個c節點中的文本的值 } function returnXMLDOM(){ var version=[ 'MSXML2.DOMDocument.6.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument' ]; for(var i=0;i<version.length;i++){ try { var xmlDom = new ActiveXObject(version[i]);//如果沒有異常 那么就創建xmldom對象成功 並且返回 return xmlDom; } catch (e) { //跳過 } } throw new Error("你的瀏覽器不支持XMLDOM對象"); }
運行結果:
------------------
使用domxml創建節點 並把添加
var xmldom=returnXMLDOM();//得到創建的xmldom對象 xmldom.load('demo.xml');//把xml文件加載進來 var rootA=xmldom.documentElement;//通過documentElement方法獲取xmldom中的跟標簽A alert(rootA.tagName);//打印節點名稱A //下面完成節點的添加操作 為B節點添加一個兄弟節點E var E=xmldom.createElement("E");//注意這里不是document對象創建的e節點 而是xmldom對象 E.appendChild(xmldom.createTextNode("這是E節點的子節點")); //把E節點加入到根節點A中 成為B節點的兄弟節點 rootA.appendChild(E); alert(xmldom.xml);
---------------------
加載方式,同步和異步:
js代碼:
1 var xmldom=getXMLDOM(); 2 xmldom.load('demo.xml');//加載的時候有兩種模式:同步和異步 默認同步 true 3 alert(xmldom.xml); 4 //上面的代碼什么都不會打印 主要是采用了異步加載的模式 load還沒有加載完畢就去序列化打印字符串 當然沒有數據 5 //下面使用同步方式 即load加載完畢之前是不會執行下面的代碼的 6 xmldom.async=false; 7 alert(xmldom.xml);//此時可以正常打印出xml文件中的數據 8 9 10 function getXMLDOM(){ 11 var version=[ 12 'MSXML2.DOMDocument.6.0', 13 'MSXML2.DOMDocument.3.0', 14 'MSXML2.DOMDocument' 15 ]; 16 for(var i=0;i<version.length;i++){ 17 try{ 18 var xmldom=new ActiveXObject(version[i]); 19 return xmldom; 20 }catch (e){ 21 //跳過 22 } 23 } 24 throw new Error("你的瀏覽器不支持XMLDOM對象"); 25 }
xml代碼:
1 <A> 2 <B> 3 <c>你好1</c> 4 <c>你好2</c> 5 </B> 6 </A>
運行效果:
同步可能會造成瀏覽器出現假死狀態
------------
異步方式: