Usuwanie węzłów DOM XML

usunChild() Metoda usuwa określony węzeł.

usunAtrybut() Metoda usuwa określone właściwości.

Usunięcie węzła elementu

usunChild() Metoda usuwa określony węzeł.

Kiedy węzeł jest usuwany, jego wszystkie podwęzły również są usuwane.

Ten kod usunie pierwszy element <book> z załadowanego xml:

Przykład

y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. ustaw zmienną y ustaw jako węzeł elementu do usunięcia
  3. Użycie usunChild() Metoda usuwa element węzła z węzła nadrzędnego

Usunięcie samego - usunięcie bieżącego węzła

usunChild() Metoda jest jedynym sposobem na usunięcie określonego węzła.

Kiedy nawigujesz do węzła do usunięcia, możesz użyć ustaw jako węzeł elementu do usunięcia i usunChild() Metoda do usunięcia tego węzła:

Przykład

x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. ustaw zmienną y ustaw jako węzeł elementu do usunięcia
  3. Użycie ustaw jako węzeł elementu do usunięcia i usunChild() metody do usuwania węzłów elementów

Usuwanie węzłów tekstowych

usunChild() Metoda może również być używana do usuwania węzłów tekstowych:

Przykład

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. ustaw zmienną x jako pierwszy węzeł elementu "title"
  3. ustaw zmienną y ustaw jako węzeł tekstowy do usunięcia
  4. Użycie usunChild() metody do usunięcia tego węzła z węzła nadrzędnego

Używaj tylko usunChild() Usunięcie tekstu z węzła nie jest zbyt częste. Można to zrobić za pomocą atrybutu nodeValue. Zobacz następny punkt.

Czyszczenie węzłów tekstowych

nodeValue Atrybuty mogą być używane do zmiany lub czyszczenia wartości węzłów tekstowych:

Przykład

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Pobieranie pierwszego węzła elementu "title"
  3. Użycie nodeValue Atrybuty do czyszczenia tekstu węzłów tekstowych

Usuwanie węzła atrybutu na podstawie nazwy

usunAtrybut() Metoda służy do usuwania węzłów atrybutów na podstawie nazwy.

Przykład 1

Poniższy kod usuwa atrybut "category" z pierwszego elementu <book>:

x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Użycie getElementsByTagName() Aby uzyskać węzeł "book"
  3. Usuwanie atrybutu "category" z pierwszego węzła elementu "book"

Przykład 2

Petla usuwająca wszystkie atrybuty "category" elementów <book>:

for (i = 0; i < xLen; i++) {
    y = x.item(i);
    y.removeAttribute('category');
}

Spróbuj sam

Usuwanie węzła atrybutu na podstawie obiektu

usunAtrybutWęzeł() Metoda używa obiektu Node jako parametru do usunięcia węzła atrybutu.

Poniższy kod usuwa wszystkie atrybuty elementów <book>:

Przykład

x = xmlDoc.getElementsByTagName("book");
for (i = 0; i < x.length; i++) {
    while (x[i].attributes.length > 0) {
        attnode = x[i].attributes[0];
        old_att = x[i].removeAttributeNode(attnode);
    }
}

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc w
  2. Użycie getElementsByTagName() Aby uzyskać wszystkie węzły book
  3. Sprawdź, czy każdy element book ma atrybut
  4. Jeśli w elemencie book istnieje atrybut, usunąć go