Rozważmy następujący dokument XML:removeChild(): jak usunąć indent też?
<items>
<item>item1</item>
<item>item2</item>
</items>
A teraz usunąć wszystkie elementy i dodać jakiś nowy element. Kod:
//-- 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);
Nowe zawartość pliku:
<items>
<item>item3</item>
</items>
te irytujące puste wiersze pojawiły ponieważ removeChild()
usuwa dziecko, ale pozostawia tiret z usuniętego dziecka, a linia złamać zbyt. I ten indent_and_like_break jest traktowany jako treść tekstowa, która pozostaje w dokumencie.
W related question Zamieściłem Obejście:
items_parent.setTextContent("");
usuwa te puste linie. Ale to jest jakiś hack hack, usuwa efekt, a nie przyczynę.
Pytanie dotyczy usunięcia przyczyny: jak usunąć dziecko z zamiarem zerwania linii?
Sprawdź [to] (http://stackoverflow.com/questions/978810/how-to-strip-whitespace-only-text-nodes-from-a-dom-before-serialization) – MadProgrammer
Dziękuję, to rozwiązane problem dla mnie. Możesz dodać to jako odpowiedź, a ja to zaakceptuję. Lub pytanie nie jest poprawne, więc może oznaczać go jako duplikat, a nawet usunąć, nie jestem pewien .. –
Jeśli podoba ci się to, w górę głosuj na połączone pytanie – MadProgrammer