我想从 XML 元素中删除空节点。此 xml 是从供应商生成的,我无法控制 xml 的生成。但由于 XML 的空节点很少,我需要递归地删除这些空节点。
这个 xml 是从 OMElement 获得的,我使用 [XMLUtils][1] 示例 XML 从这个对象中获得一个元素
<A>
<B>
<C>
<C1>
<C11>something</C11>
<C12>something</C12>
</C1>
</C>
<D>
<D1>
<D11>
<D111 operation="create">
<Node>something else</Node>
</D11>
</D11>
</D1>
<D2>
<D21>
</D21>
</D2>
</D>
</B>
</A>
由于 D21 是一个空节点,我想删除 D21,因为现在 D2 是一个空节点,我想删除 D2,但由于 D 有 D1,我不想删除 D。
同样,我有可能得到
<A>
<B>
<C>
</C>
</B>
</A>
现在因为 C 是空的,我想删除 C,然后是 B,最后是节点 A。我正在尝试使用Node中的 removeChild() 方法来执行此操作
但到目前为止,我无法递归删除它们。有什么建议可以递归删除它们吗?
我正在递归地尝试获取节点和节点长度。但是节点长度没有帮助
if(childNode.getChildNodes().getLength() == 0 ){
childNode.getParentNode().removeChild(childNode);
}
问候
Dheeraj Joshi