给定以下场景,其中 xml,Geography.xml 看起来像 -
<Geography xmlns:ns="some valid namespace">
<Country>
<Region>
<State>
<City>
<Name></Name>
<Population></Population>
</City>
</State>
</Region>
</Country>
</Geography>
以及以下示例 java 代码 -
InputStream is = new FileInputStream("C:\\Geography.xml");
SAXBuilder saxBuilder = new SAXBuilder();
Document doc = saxBuilder.build(is);
XPath xpath = XPath.newInstance("/*/Country/Region/State/City");
Element el = (Element) xpath.selectSingleNode(doc);
boolean b = doc.removeContent(el);
该removeContent()
方法不会City
从doc
. b 的值是false
我不明白为什么它不删除元素,我什至试图从 xml 中删除Name
&Population
元素只是为了看看这是否是问题,但显然不是。
我尝试的另一种方法,我不知道为什么我知道它没有本质上的不同,仍然只是为了使用Parent
-
Parent p = el.getParent();
boolean s = p.removeContent(new Element("City"));
可能有什么问题?和可能的解决方案?如果有人可以分享该方法的真实行为removeContent()
,我怀疑它与父子关系有关。