我必须在特定位置的
XML文件中插入数据.例如:
<tag1> <tag2> <tag3>data</tag3> </tag2> <tag2> <tag3>data2</tag3> </tag2> </tag1>
我必须使用DOM找到’data2’而不是返回并在’tag2’中插入新元素,其中包含’data2′.更具体地说,我正在编写一个获取参数的函数:搜索键和要插入的数据.
我怎样才能找到’data2’以及如何回到’tag2’以便插入?
解决方法
将上述XML数据用作字符串:
XMLDocument.prototype.getElementByContent = function getElementByContent(str) { var elems = this.querySelectorAll("*"); for (var i = 0,l = elems.length; i < l; i++) { if (elems[i].textContent === str) { return elems[i]; } } }; var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlString,"text/xml"); var tag = xmlDoc.createElement("tag3"); var content = xmlDoc.createTextNode("data3"); tag.appendChild(content); xmlDoc.getElementByContent("data2").parentNode.appendChild(tag); /* #docment▼ (XMLDocument) <tag1>▼ <tag2>▼ <tag3>data</tag3> </tag2> <tag2>▼ <tag3>data2</tag3> <tag3>data3</tag3> </tag2> </tag1> */