javascript - 如何使用 XML DOM javascript 删除 xml 父标签?

标签 javascript node.js xmldom

我正在研究替换 xml Node 。我在删除带有内部 Node 本身的父 Node 时遇到问题。

我想删除内部 Node 很少的父 Node 并保留一些其他内部 Node 。

xml 字符串的来源:

 <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>

有人可以帮助我吗?

提前致谢。

最佳答案

您可以使用replaceChild方法在要替换的 Node 的父 Node 上。

所以你想在根上执行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;

关于javascript - 如何使用 XML DOM javascript 删除 xml 父标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680135/

相关文章:

javascript - 关于高阶函数回调中的 ‘this’ 的问题

javascript - 如何使用多个 select2 框过滤表格?

node.js - 在哪里放置 robots.txt - Nodejs Express 项目

php - 如何使用 PHP 解压 xml 文件

javascript - 如何获得总用户中的页面访问者百分比

JavaScript 运行时错误 : '$' is undefined - using MVC 4

javascript - new Date() 在不同的环境中表现不同,为什么?

javascript - Sequelize 五5,通天七7 : TypeError: Class constructor Model cannot be invoked without 'new'

javascript - DOM 导航 : eliminating the text nodes

xml - 使用 VBScripting 将节点添加到 xml 文件