js操作xml dom

xml爲字符串:

var xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><files type=\"1\" name=\"Dbgview\" path=\"a\" size=\"2\"><file name=\"Dbgview\" path=\"a\" size=\"2\"/><file name=\"Dbgview\" path=\"a\" size=\"2\"/><file name=\"Dbgview\" path=\"a\" size=\"2\"/></files><files type=\"1\" name=\"Dbgview\" path=\"a\" size=\"2\"/><files type=\"2\" name=\"Dbgview\" path=\"a\" size=\"2\"/><files type=\"4\" name=\"Dbgview\" path=\"a\" size=\"2\"/><files type=\"8\" name=\"Dbgview\" path=\"a\" size=\"2\"/></root>"

拿到xmlDoc:

 var xmlDoc = null;
            //判斷瀏覽器的類型
            //支持IE瀏覽器
            if(!window.DOMParser && window.ActiveXObject){   //window.DOMParser 判斷是否是非ie瀏覽器
                 var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];
                for(var i=0;i<xmlDomVersions.length;i++){
                    try{
                         xmlDoc = new ActiveXObject(xmlDomVersions[i]);
                         xmlDoc.async = false;
                         xmlDoc.loadXML(xmlStr); //loadXML方法載入xml字符串
                        break;
                     }catch(e){
                     }
                 }
             }
            //支持Mozilla瀏覽器
            else if(window.DOMParser && document.implementation && document.implementation.createDocument){
                try{
                     domParser = new   DOMParser();
                     xmlDoc = domParser.parseFromString(xmlStr, 'text/xml');
                 }catch(e){
                 }
             }

var fileElement = xmlDoc.getElementsByTagName('files');

var totalElementNum = fileElement.length;

遍歷得到節點屬性的值:

       alert(n[i].attributes["type"].value);
       alert(n[i].childNodes);
       alert(n[i].getElementsByTagName("file")[0].attributes["name"].value);


獲取幾點的值:

      n[i].getElementsByTagName("file")[0].firstChild.nodeValue;


copyJavascript操作xmlDoc的方法:     

createAttribute()

用指定的名字創建新的Attr節點。

createComment()

用指定的字符串創建新的Comment節點。

createElement()

用指定的標記名創建新的Element節點。

createTextNode()

用指定的文本創建新的TextNode節點。

getElementById()

返回文檔中具有指定id屬性的Element節點。

getElementsByTagName()

返回文檔中具有指定標記名的所有Element節點。

appendChild()

通過把一個節點增加到當前節點的childNodes[]組,給文檔樹增加節點。

cloneNode()

複製當前節點,或者複製當前節點以及它的所有子孫節點。

hasChildNodes()

如果當前節點擁有子節點,則將返回true。

insertBefore()

給文檔樹插入一個節點,位置在當前節點的指定子節點之前。如果該節點已經存在,則刪除之再插入到它的位置。

removeChild()

從文檔樹中刪除並返回指定的子節點。

replaceChild()

從文檔樹中刪除並返回指定的子節點,用另一個節點替換它。

獲取操作元素的屬性:

屬性

描述

attributes

如果該節點是一個Element,則以NamedNodeMap形式返回該元素的屬性。

childNodes

以Node[]的形式存放當前節點的子節點。如果沒有子節點,則返回空數組。

firstChild

以Node的形式返回當前節點的第一個子節點。如果沒有子節點,則爲null。

lastChild

以Node的形式返回當前節點的最後一個子節點。如果沒有子節點,則爲null。

nextSibling

以Node的形式返回當前節點的兄弟下一個節點。如果沒有這樣的節點,則返回null。下一個兄弟節點

nodeName

節點的名字,Element節點則代表Element的標記名稱。

nodeType

代表節點的類型。

parentNode

以Node的形式返回當前節點的父節點。如果沒有父節點,則爲null。

previousSibling

以Node的形式返回緊挨當前節點、位於它之前的兄弟節點。如果沒有這樣的節點,則返回null。上一個兄弟節點


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章