Consideriamo il seguente documento XML:removeChild(): come rimuovere anche il rientro?
<items>
<item>item1</item>
<item>item2</item>
</items>
Ora, cerchiamo di rimuovere tutti gli elementi e aggiungere qualche nuovo elemento. Codice:
//-- 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);
Nuove contenuto del file:
<items>
<item>item3</item>
</items>
Queste righe vuote fastidiose apparso perché removeChild()
rimuove bambino, ma lascia trattino del bambino rimosso, e la linea di rompere anche. E questo indent_and_like_break è trattato come un contenuto di testo, che è lasciato nel documento.
Nel related question ho postato soluzione:
items_parent.setTextContent("");
Si rimuove queste righe vuote. Ma questo è un nodo di hacking, rimuove l'effetto, non la causa.
Quindi, la domanda riguarda la rimozione della causa: come rimuovere il bambino con il suo intento con interruzione di riga?
Controllare [questo] (http://stackoverflow.com/questions/978810/how-to-strip-whitespace-only-text-nodes-from-a-dom-before-serialization) – MadProgrammer
Grazie, questo risolto il problema per me. Puoi aggiungere questo come una risposta, e lo accetterò. Oppure, la domanda non è effettivamente corretta, quindi, magari contrassegnarla come duplicata o addirittura cancellarla, non è sicuro .. –
Se ti piace, vai a votare la domanda collegata – MadProgrammer