如何使用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;