XML DOM - Knoten hinzufügen

实例

下面的例子使用 XML 文件 books.xml

函数 loadXMLDoc()位于外部 JavaScript 中,用于加载 XML 文件。

Fügen Sie einen Knoten nach dem letzten Unterbaum hinzu
Dieses Beispiel verwendet die Methode appendChild(), um einen Unterbaum zu einem vorhandenen Knoten hinzuzufügen.
Fügen Sie einen Knoten vor einem bestimmten Unterbaum hinzu
Dieses Beispiel verwendet die Methode insertBefore(), um einen Knoten vor einem bestimmten Unterbaum einzufügen.
Fügen Sie eine neue Eigenschaft hinzu
Dieses Beispiel verwendet die Methode setAttribute(), um eine neue Eigenschaft hinzuzufügen.
Fügen Sie Daten zu einem Textknoten hinzu
Dieses Beispiel verwendet insertData(), um Daten in einen bestehenden Textknoten einzufügen.

Hinzufügen eines Knotens - appendChild()

Die Methode appendChild() fügt einem vorhandenen Knoten einen Unterbaum hinzu.

Der neue Knoten wird nach jedem vorhandenen Unterbaum hinzugefügt (angehängt).

Anmerkung:Verwenden Sie insertBefore(), wenn die Position des Knotens wichtig ist.

Der folgende Codeabschnitt erstellt ein Element (<edition>) und fügt es nach dem letzten Unterbaum des ersten <book>-Elements hinzu:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Beispiel erläutert:

  1. Durch die Verwendung loadXMLDoc() Fügt "books.xmlLade xmlDoc
  2. Erstellen Sie einen neuen Knoten <edition>.
  3. Fügen Sie diesen Knoten zum ersten <book>-Element hinzu

TIY

Schleife und einen Element hinzufügen zu allen <book>-Elementen:TIY

Einfügen eines Knotens - insertBefore()

Die Methode insertBefore() wird verwendet, um einen Knoten vor einem bestimmten Unterbaum einzufügen.

Diese Methode ist nützlich, wenn die Position des hinzugefügten Knotens wichtig ist.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

Beispiel erläutert:

  1. Durch die Verwendung loadXMLDoc() Fügt "books.xmlLade xmlDoc
  2. Erstellen Sie einen neuen Elementknoten <book>.
  3. Setzen Sie diesen Knoten vor dem letzten <book>-Element.

TIY

Wenn der zweite Parameter von insertBefore() null ist, wird der neue Knoten nach dem letzten vorhandenen Unterbaum hinzugefügt.

x.insertBefore(newNode,null) und x.appendChild(newNode) können einem x einen neuen Unterbaum hinzufügen.

Eigenschaft hinzufügen

Die Methode addAtribute() existiert nicht.

Fügt das Attribut existiert nicht, kann setAttribute() ein neues Attribut erstellen:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

Beispiel erläutert:

  1. Durch die Verwendung loadXMLDoc() Fügt "books.xmlLade xmlDoc
  2. Setzt den Wert des "edition"-Attributs des ersten <book>-Elements (erstellt) auf "first".

TIY

Anmerkung:Fügt das atрибут existiert, die Methode setAttribute() überschreibt den bestehenden Wert.

Textknoten mit Text hinzufügen - insertData()

insertData() Methode fügt Daten in bestehende Textknoten ein.

insertData() Methode hat zwei Parameter:

  • offset - An welcher Stelle der Eintrag begonnen werden soll (ab 0 beginnend)
  • string - Die einzufügende Zeichenfolge

Der folgende Codeabschnitt fügt "Easy" dem Textknoten des ersten <title>-Elements des geladenen XMLs hinzu:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hallo ");

TIY