Java 如果属性具有特定值,则删除XML节点
Java 如果属性具有特定值,则删除XML节点,java,xml,dom,xpath,Java,Xml,Dom,Xpath,我需要在XML中搜索某些属性,如果找到该属性,则删除其节点。例如,我想删除属性以“#false”开头的book节点 但是问题是“available”元素的父节点为null,因此我无法找到删除整个“book”节点的方法。有任何帮助吗?对于属性,请使用Attr\getownerrement()检索包含属性的元素: NodeList nodeList = (NodeList) xPath. compile(search).evaluate(doc, XPathConstant
我需要在XML中搜索某些属性,如果找到该属性,则删除其节点。例如,我想删除属性以“#false”开头的book节点
但是问题是“available”元素的父节点为null,因此我无法找到删除整个“book”节点的方法。有任何帮助吗?对于属性,请使用
Attr\getownerrement()
检索包含属性的元素:
NodeList nodeList = (NodeList) xPath.
compile(search).evaluate(doc, XPathConstants.NODESET);
Node attrNode = nodeList.item(0);
if(attrNode.getNodeType() == Node.ATTRIBUTE_NODE) {
Attr attr = (Attr) attrNode;
Element bookElement = attr.getOwnerElement();
...
}
您可以使用这个xpath。。它将与book元素本身匹配
//*[@*[starts-with(.,'#false')]]
我希望这能有所帮助 谢谢!正是我要找的!
NodeList nodeList = (NodeList) xPath.
compile(search).evaluate(doc, XPathConstants.NODESET);
Node attrNode = nodeList.item(0);
if(attrNode.getNodeType() == Node.ATTRIBUTE_NODE) {
Attr attr = (Attr) attrNode;
Element bookElement = attr.getOwnerElement();
...
}
//*[@*[starts-with(.,'#false')]]