js操作xml

来源:互联网 发布:淘宝店入驻折800 编辑:程序博客网 时间:2024/06/05 06:16

经过js解析之后的xml操作与dom操作雷同

完整示例:


<script type="text/javascript">function parseXML() {text="<userInfo><userName>xxx</userName></userInfo>";  try{ //Internet Explorer    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");    xmlDoc.async="false";    xmlDoc.loadXML(text);    } catch(e) {      try{ //Firefox, Mozilla, Opera, etc.        parser=new DOMParser();        xmlDoc=parser.parseFromString(text,"text/xml");      } catch(e) {        alert(e.message);        return;      }  }  alert(xmlDoc.getElementsByTagName("userName")[0].childNodes[0].nodeValue);}parseXML();</script>


精简:

改变文本节点得值

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc .getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Cooking";

改变属性的值

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc .getElementsByTagName("book");x[0].setAttribute("category","food");

删除元素节点

xmlDoc = loadXMLDoc("books.xml");y = xmlDoc.getElementsByTagName("books")[0];xmlDoc.documentElement.removeChild(y);


删除自身

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("book")[0];x.parentNode.removeChild(x);

删除文本节点

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("title")[0];y = x.childNodes[0];x.removeChild(y);

清空文本节点

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("title")[0];x.nodeValue = "";

根据名称删除属性节点

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("book");x[0].removeAttribute(category);

根据对象删除属性节点

xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("book");for(var i=0;i<x.length;i++){    while(x[i].attributes.length>0){        attnode=x[i].attributes[0];        old_att=x[i].removeAttribtueNode(attnode);    }}x[0].removeAttribute(category);

替换元素节点

replaceChild() 方法用于替换节点。xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.documentElement;//create a book element, title element and a text nodenewNode = xmlDoc.createElement("book");newTitle = xmlDoc.createElement("title");newText = xmlDoc.createTextNode("A Notebook");//add the text node to the title node,newTitle.appendChild(newText);//add the title node to the book nodenewNode.appendChild(newTitle);y = xmlDoc.getElementsByTagName("book")[0];//replace the first book node with the new nodex.replaceChild(newNode,y);


替换文本节点中的数据

replaceData()方法用于替换文本节点中的数据。replaceData()方法有三个参数:offset-在何处开始替换字符。Offset值以0开始。length-要替换多少字符。string-要插入的字符串。xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.replaceDate(0,8,"Easy");用nodeValue属性来替换文本节点中的数据。xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Italian";

创建新的元素节点

createElement()方法创建新的元素节点。xmlDoc = loadXMLDoc("books.xml");newNode = xmlDoc.createElement("edition");x = xmlDoc.getElementsByTagName("book")[0];x.appendChild(newNode);

创建新的属性节点

xmlDoc = loadXMLDoc("books.xml");newAtt = xmlDoc.createAttribute("edition");newAtt.nodeValue ="first";x = xmlDoc.getElementsByTagName("title");x[0].setAttributeNode(newAtt);通过setAttribute创建属性。xmlDoc = loadXMLDoc("books.xml");x = xmlDoc.getElementsByTagName("book");x[0].setAttribute("edition","first");

创建文本节点

createTextNode()方法创建新的文本节点。xmlDoc = loadXMLDoc("books.xml");newNode = xmlDoc.createElement("publisher");newText = xmlDoc.createTextNode("english");newNode.appendChild(newText);x = xmlDoc.getElementsByTagName("book")[0];x.appendChild(newNode);











0 0
原创粉丝点击