Dodawanie węzłów DOM XML

Dodaj węzeł - appendChild()

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

Nowy węzeł można dodać (dodać) za każdym istniejącym potomkiem.

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

Poniższy fragment kodu tworzy element (<wersja>) i dodaje go za ostatnim potomkiem pierwszego elementu <book>.

Przykład 1

newEle = xmlDoc.createElement("wersja");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Utwórz nowy węzeł <edition>
  3. Dodaj węzeł do pierwszego elementu <book>.

Działanie tego kodu jest podobne do poprzedniego, ale nowy element ma dodany wartość:

Przykład 2

newEle = xmlDoc.createElement("wersja");
newText = xmlDoc.createTextNode("pierwsza wersja");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Utwórz nowy węzeł <edition>
  3. Utwórz nowy węzeł tekstowy "pierwsza edycja"
  4. Dodaj ten węzeł tekstowy do węzła <edition>.
  5. Dodaj węzeł <edition> do elementu <book>.

Wstawienie węzła - insertBefore()

insertBefore() Metoda wstawia węzeł przed określonym podwęzłem.

Jeśli pozycja dodawanego węzła jest ważna, ta metoda jest bardzo przydatna:

Przykład

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

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Utwórz nowy element <book>.
  3. Wstaw ten nowy węzeł przed ostatnim węzłem <book>.
  4. jeśli drugi parametr insertBefore() jest null, nowy węzeł zostanie dodany za ostatnim istniejącym podwęzłem.

x.insertBefore(newNode,null) oraz x.appendChild(newNode) można dodać nowe podwęzły do x.

Dodaj nowy atrybut

setAttribute() metoda ustawia wartość atrybutu.

jeśli atrybut nie istnieje, setAttribute() można utworzyć nowy atrybut:

Przykład

xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","pierwsza edycja");

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Ustaw wartość atrybutu "edition" pierwszego elementu <book> na "pierwsza edycja"

Uwaga:Nie istnieje metoda o nazwie addAttribute(), jeśli atrybut nie istnieje, setAttribute() utworzy nowy atrybut. Jeśli atrybut już istnieje, metoda setAttribute() nadpisze istniejącą wartość.

Dodaj tekst do węzła tekstowego - insertData()

insertData() Metoda wstawia dane do istniejącej węzła tekstowego.

insertData() Metoda ma dwa parametry:

  • offset Od którego miejsca wstawiać znaki (od 0)
  • string - Ciąg do wstawienia

Poniższy fragment kodu doda "Mój ulubiony" do tekstu pierwszego elementu <title> załadowanego XML:

Przykład

xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Mój ulubiony");

Spróbuj sam