xml – 使用xpath删除节点
发布时间:2020-12-16 23:21:59 所属栏目:百科 来源:网络整理
导读:我有一个xml结构如下: a b foonull/foo /b b fooabc/foo /b b fooefg/foo /b/a 我正在使用org.w3c.dom.Document来更新节点.何时 foo有一个值null,我想删除 b foonull/foo/b 这可能吗?我知道我可以调用removeChild(childElement),但不知道如何指定删除上面
我有一个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:尝试在不存在的上下文中引用节点. 解决方法doc.removeChild(node); 因为您尝试删除的节点不是文档节点的子节点,它将不起作用,它是文档元素(a)的子节点,它本身是文档根节点的子节点.您需要在正确的父节点上调用removeChild: node.getParentNode().removeChild(node); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |