让我们考虑以下 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 被当作文本内容,留在文档中。
在相关问题中,我发布了解决方法:
items_parent.setTextContent("");
它会删除这些空行。但这是一种技巧,它消除了结果,而不是原因。
所以,问题是关于消除原因:如何用换行符的意图移除孩子?