【发布时间】:2012-12-24 16:07:14
【问题描述】:
让我们考虑以下 XML 文档:
<items>
<item>item1</item>
<item>item2</item>
</items>
现在,让我们删除所有项目并添加一些新项目。代码:
//-- assume we have Element instance of <items> element: items_parent
// and the Document instance: doc
//-- remove all the items
NodeList items = items_parent.getElementsByTagName("item");
for (int i = 0; i < items.getLength(); i++){
Element curElement = (Element)items.item(i);
items_parent.removeChild(curElement);
}
//-- add a new one
Element new_item = doc.createElement("item");
new_item.setTextContent("item3");
items_parent.appendChild(new_item);
文件的新内容:
<items>
<item>item3</item>
</items>
这些烦人的空行出现是因为removeChild() 删除了子项,但它留下了已删除子项的缩进,并且也出现了换行符。而这个indent_and_like_break被当作文本内容,留在文档中。
在related question 我发布了解决方法:
items_parent.setTextContent("");
它会删除这些空行。但这是一种技巧,它消除了结果,而不是原因。
所以,问题是关于消除原因:如何用换行符的意图删除子项?
【问题讨论】:
-
检查this
-
谢谢,这解决了我的问题。您可以将其添加为答案,我会接受。或者,这个问题实际上并不正确,所以,可能将其标记为重复甚至删除,不确定..
-
如果您喜欢,请为链接的问题投票
-
@MadProgrammer,当然,我已经在没有你提及的情况下对问题和答案都投了赞成票。
标签: java xml dom removechild