のは、次のXML文書を考えてみましょう:removeChild():インデントも削除するには?
今<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);
新しい内容は:removeChild()
が子供を削除しますが、それが削除された子のインデント葉、およびラインあまりにも壊れているため
<items>
<item>item3</item>
</items>
これらの迷惑な空白行が現れました。そして、このindent_and_like_breakは、ドキュメントに残されたテキストコンテンツとして扱われます。 related questionで
私は回避策を投稿:
items_parent.setTextContent("");
それはこれらの空白行を削除します。しかし、これはハックのいくつかの欠点です、それは原因ではなく、効果を削除します。
問題は、原因を取り除くことです。改行を伴う目的で子供を削除する方法は?
[こちら](http://stackoverflow.com/questions/978810/how-to-strip-whitespace-only-text-nodes-from-a-dom-before-serialization) – MadProgrammer
ありがとう、これを解決しました私の問題。あなたはこれを回答のように追加することができます。私はそれを受け入れます。または、質問は実際には正しいとは言えませんので、重複しているかどうかを確認してください。 –
リンク先の質問 – MadProgrammer