我有一个名为 MainNode 的XML节点。在这个节点内,我有四个其他节点,NodeOne直到NodeFour。如何仅从MainNode中删除节点2和3?
我的问题的第二部分:可以在不删除节点1和4的情况下删除MainNode和SubNodes 2和3吗? 以下是我的问题的XML:
<MainNode>
<NodeOne>one</NodeOne>
<NodeTow>tow</NodeTow>
<NodeThree>Thre</NodeThree>
<NodeFour>Four</NodeFour>
</MainNode>
答案 0 :(得分:0)
使用DOMParser
然后使用标准DOM操作。
第1部分
var xml = '<MainNode><NodeOne>one</NodeOne><NodeTow>tow</NodeTow><NodeThree>Three</NodeThree><NodeFour>Four</NodeFour></MainNode>',
doc = new window.DOMParser().parseFromString(xml, 'text/xml'),
NodeTow = doc.querySelector('NodeTow'),
NodeThree = doc.querySelector('NodeThree');
NodeTow.parentElement.removeChild(NodeTow);
NodeThree.parentElement.removeChild(NodeThree);
document.getElementById('out').textContent = (new XMLSerializer().serializeToString(doc));
&#13;
<pre id="out"></pre>
&#13;
第2部分
var xml = '<MainNode><NodeOne>one</NodeOne><NodeTow>tow</NodeTow><NodeThree>Three</NodeThree><NodeFour>Four</NodeFour></MainNode>',
doc = new window.DOMParser().parseFromString(xml, 'text/xml'),
MainNode = doc.querySelector('MainNode'),
NodeTow = doc.querySelector('NodeTow'),
NodeThree = doc.querySelector('NodeThree'),
fragment = document.createDocumentFragment(),
children;
MainNode.removeChild(NodeTow);
MainNode.removeChild(NodeThree);
children = [].slice.call(MainNode.children);
children.forEach(function (child) {
fragment.appendChild(child);
});
doc.removeChild(MainNode);
doc.appendChild(fragment);
document.getElementById('out').textContent = (new XMLSerializer().serializeToString(doc));
&#13;
<pre id="out"></pre>
&#13;