获取属性的节点父级

2022-09-04 01:02:08

我需要通过此属性的 XPath 从 XML 文档中删除属性。
一切都应该用Java完成。
我能够使用以下代码找到属性的节点:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document document = dbf.newDocumentBuilder().parse(new File("input.xml"));

XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
XPathExpression expression = xpath.compile("//div[@id='1']/@id");

Node myNode = (Node) expression.evaluate(document, XPathConstants.NODE);

我的想法是获取属性的节点父级,然后调用 removeChild 方法将属性的节点作为参数传递。

myNode.getParentNode().removeChild(myNode);

不幸的是,根据API文档属性节点没有父节点。

如何获取属性节点的父节点?


答案 1

看起来适当的DOM方法是

((Attr) myNode).getOwnerElement()

http://download.oracle.com/javase/6/docs/api/org/w3c/dom/Attr.html#getOwnerElement()

此属性附加到的节点,或者此属性未在使用中。Elementnull


答案 2