如何使用XML DOM的JavaScript删除XML父标签?
我正在处理replaceXML节点。 我有内部节点本身删除父节点的问题。
我想删除less数内部节点的父节点,并保留一些其他的内部节点。
xmlstring的来源:
<root> ***<bPoint id="1" > <bLabel> <text></text> </bLabel> <content src="p112" />*** <bPoint id="2"> <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> ***</bPoint>*** <bPoint id="bPoint-2" > <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> </root>
我的输出将是
<root> <bPoint id="2"> <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> <bPoint id="bPoint-2" > <bLabel> <text>xxx</text> </bLabel> <content src="p1123" /> </bPoint> </root>
任何一个人帮助我?
提前致谢。
您可以在要replace的节点的父节点上使用replaceChild方法。
所以你会想要做一个replaceChild根传递你的bPoint id 2作为第一个参数和bPoint id 1作为第二个
rootNode.replaceChild(bPoint2,bPoint1);
演示
var xml = '<?xml version="1.0" encoding="ISO-8859-1" ?><root><bPoint id="1"><bLabel><text></text></bLabel><content src="p112" /><bPoint id="2"><bLabel><text>xxx</text></bLabel><content src="p1123" /></bPoint></bPoint><bPoint id="bPoint-2" ><bLabel><text>xxx</text></bLabel><content src="p1123" /></bPoint></root>' //Create xml parser and parse to XMLDocument var parser = new DOMParser(); var xmldoc = parser.parseFromString(xml,"text/xml"); //Get "root" node var rootNode = xmldoc.querySelector("root"); //Would use id selectors but number ids are invalid selectors var bPoint1 = xmldoc.querySelector("bPoint"); var bPoint2 = bPoint1.querySelector("bPoint"); //Replace bPoint 1 with bPoint2 rootNode.replaceChild(bPoint2,bPoint1); //Get the new xml string var newXml = (new XMLSerializer).serializeToString(xmldoc); console.log(xmldoc); document.body.innerText = newXml;