Dodawanie węzła XML DOM

Przykład

Poniższy przykład używa pliku XML books.xml.

Funkcja loadXMLDoc()Zlokalizowane w zewnętrznym JavaScript, używane do ładowania plików XML.

Dodaj węzeł za ostatnim podwęzłem
W tym przykładzie używamy metody appendChild() do dodania podwęzła do istniejącego węzła.
Dodaj węzeł przed określonym podwęzłem
W tym przykładzie używamy metody insertBefore() do wstawienia węzła przed określonym podwęzłem.
Dodaj nową właściwość
W tym przykładzie używamy metody setAttribute() do dodania nowej właściwości.
Dodaj dane do węzła tekstowego
W tym przykładzie używamy insertData() do wstawienia danych do istniejącego węzła tekstowego.

Dodaj węzeł - appendChild()

Metoda appendChild() dodaje podwęzeł do istniejącego węzła.

Nowy węzeł zostanie dodany (dodany) za każdym istniejącym podwęzłem.

Uwaga:Jeśli pozycja węzła jest ważna, użyj metody insertBefore().

Poniższy fragment kodu tworzy element (<!edition>) i dodaje go za ostatnim podwęzłem pierwszego elementu <book>.

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

Przykład wyjaśnienia:

  1. Przy użyciu loadXMLDoc() Ustaw wartość "books.xmlzaładowany do xmlDoc
  2. Utwórz nowy węzeł <edition>.
  3. Wstaw ten węzeł do pierwszego elementu <book>.

TIY

Powtarzaj i dodawaj element do wszystkich elementów <book>:TIY

Wstawienie węzła - insertBefore()

Metoda insertBefore() służy do wstawiania węzła przed określonym podwęzłem.

Ten metod jest bardzo użyteczny, gdy pozycja wstawianego węzła jest ważna.

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

Przykład wyjaśnienia:

  1. Przy użyciu loadXMLDoc() Ustaw wartość "books.xmlzaładowany do xmlDoc
  2. Utwórz nowy element <book>.
  3. Wstaw ten węzeł przed ostatnim elementem <book>.

TIY

Jeśli drugi parametr insertBefore() jest null, nowy węzeł zostanie dodany za ostatnim istniejącym podwęzłem.

x.insertBefore(newNode,null) i x.appendChild(newNode) można dodać nowy podwęzeł do x.

Dodaj nową właściwość

Metoda addAtribute() nie istnieje.

Jeśli atrybut nie istnieje, metoda setAttribute() może utworzyć nowy atrybut:

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

Przykład wyjaśnienia:

  1. Przy użyciu loadXMLDoc() Ustaw wartość "books.xmlzaładowany do xmlDoc
  2. Ustaw wartość atrybutu "edition" pierwszego elementu <book> na (utwórz) "first"

TIY

Uwaga:Jeśli atrybut już istnieje, metoda setAttribute() nadpisze istniejącą wartość.

Dodawanie tekstu do węzła tekstu - insertData()

Metoda insertData() wstawia dane do istniejącego węzła tekstu.

Metoda insertData() ma dwa parametry:

  • offset - gdzie zacząć wstawianie znaków (zaczynając od 0)
  • string - ciąg znaków do wstawienia

Poniższy fragment kodu doda "Easy" do tekstu węzła pierwszego elementu <title> załadowanego XML:

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

TIY