XML DOM Dodaj węzły
Spróbuj sam - przykłady
Poniższe przykłady wykorzystują plik XML books.xml .
W tym przykładzie zastosowano appendChild() w celu dodania węzła podrzędnego do istniejącego węzła.
W tym przykładzie zastosowano insertBefore() do wstawienia węzła przed określonym węzłem podrzędnym.
W tym przykładzie zastosowano metodę setAttribute() w celu dodania nowego atrybutu.
W tym przykładzie zastosowano metodę insertData() do wstawiania danych do istniejącego węzła tekstowego.
Dodaj węzeł - appendChild()
Metoda appendChild() dodaje węzeł podrzędny do istniejącego węzła.
Nowy węzeł jest dodawany (dołączany) po wszelkich istniejących węzłach podrzędnych.
Uwaga: Użyj insertBefore(), jeśli pozycja węzła jest ważna.
Ten fragment kodu tworzy element (<edition>) i dodaje go po ostatnim dziecku pierwszego elementu <book>:
Przykład
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Wyjaśnienie przykładu:
- Załóżmy, że plik " books.xml " jest załadowany do xmlDoc
- Utwórz nowy węzeł <edition>
- Dołącz węzeł do pierwszego elementu <book>
Ten fragment kodu robi to samo, co powyżej, ale dodawany jest nowy element z wartością:
Przykład
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Wyjaśnienie przykładu:
- Załóżmy, że plik " books.xml " jest załadowany do xmlDoc
- Utwórz nowy węzeł <edition>
- Utwórz nowy węzeł tekstowy „pierwszy”
- Dołącz węzeł tekstowy do węzła <edycja>
- Dołącz węzeł <addition> do elementu <book>
Wstaw węzeł - insertBefore()
Metoda insertBefore() wstawia węzeł przed określonym węzłem podrzędnym.
Ta metoda jest przydatna, gdy ważna jest pozycja dodawanego węzła:
Przykład
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Wyjaśnienie przykładu:
- Załóżmy, że plik " books.xml " jest załadowany do xmlDoc
- Utwórz nowy węzeł elementu <book>
- Wstaw nowy węzeł przed ostatnim węzłem elementu <book>
Jeśli drugi parametr insertBefore() ma wartość null, nowy węzeł zostanie dodany po ostatnim istniejącym węźle podrzędnym.
x.insertBefore(newNode,null) i x.appendChild(newNode) dodadzą nowy węzeł podrzędny do x.
Dodaj nowy atrybut
Metoda setAttribute() ustawia wartość atrybutu.
Przykład
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Wyjaśnienie przykładu:
- Załóżmy, że plik „ books.xml ” został załadowany do xmlDoc
- Ustaw wartość atrybutu „edition” na „first” dla pierwszego elementu <book>
Nie ma metody zwanej add Attribute()
Funkcja setAttribute() utworzy nowy atrybut, jeśli atrybut nie istnieje.
Uwaga: Jeśli atrybut już istnieje, metoda setAttribute() zastąpi istniejącą wartość.
Dodaj tekst do węzła tekstowego - insertData()
Metoda insertData() wstawia dane do istniejącego węzła tekstowego.
Metoda insertData() ma dwa parametry:
- offset - od czego zacząć wstawianie znaków (zaczyna się od zera)
- string - Ciąg do wstawienia
Poniższy fragment kodu doda „Easy” do węzła tekstowego pierwszego elementu <title> w załadowanym pliku XML:
Przykład
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");