2013-02-28 10 views
6

Wenn ein XML-Dokument zu erstellen, was der Unterschied ist (falls vorhanden) zwischen diesen beiden Methoden zum Hinzufügen von Text zu einem Elemente:Unterschied zwischen setTextContent() und appendChild (Text)

Element el = document.createElement("element"); 
el.setTextContent("This is the text content"); 

und

Element el = document.createElement("element"); 
Text txt = document.createTextNode("This is the text content"); 
el.appendChild(txt); 

Antwort

7

From the documentation for Element#setTextContent():

Auf Einstellung, alle möglichen Kinder dieser Knoten werden möglicherweise entfernt und, wenn es die neue Zeichenfolge ist nicht leer oder null und wird durch einen einzelnen Textknoten ersetzt, der die Zeichenfolge enthält, auf die dieses Attribut festgelegt ist.

Element#appendChild() entfernt keine vorhandenen untergeordneten Elemente (außer in dem Fall, dass das angegebene untergeordnete Element bereits in der Struktur enthalten ist). Deshalb

el.setTextContent("This is the text content") 

entsprechen alle Kinder zu entfernen vorel.appendChild() Aufruf:

for(Node n : el.getChildNodes()) 
{ 
    el.removeChild(n); 
} 
el.appendChild(document.createTextNode("This is the text content")); 
2

appendChild()

Methode fügt einen Knoten nach dem letzten Child-Knoten des angegebenen Elementknoten.

setTextContent() 

Ersetzen Sie den Textinhalt durch diesen.