我有一个如下的XML结构:
<a>
<b>
<foo>null</foo>
</b>
<b>
<foo>abc</foo>
</b>
<b>
<foo>efg</foo>
</b>
</a>
我正在使用
org.w3c.dom.Document
更新节点。当<foo>
的值为null
时,我想要删除它。<b>
<foo>null</foo>
</b>
这是否可行?我知道可以调用removeChild(childElement)
,但不确定如何指定删除上面的特定嵌套元素。
更新:根据下面的答案,我尝试了:
String query = "/a/b[foo[text() = 'null']]";
Object result = (xpath.compile(newQuery)).evaluate(doc, NODE);
NodeList nodes = (NodeList)result;
for (int i = 0; i < nodes.getLength(); i++)
{
Node node = nodes.item(i);
doc.removeChild(node);
}
我遇到了一个错误:
NOT_FOUND_ERR
:尝试在不存在的上下文中引用节点。