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。上一個兄弟節點 |