XML DOM solmujen poistaminen

removeChild() 方法删除指定的节点。

removeAttribute() 方法删除指定的属性。

删除元素节点

removeChild() 方法删除指定的节点。

当一个节点被删除时,它的所有子节点也会被删除。

这段代码将从已加载的 xml 中删除第一个 <book> 元素:

Esimerkki

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

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan books.xml on jo ladattu xmlDoc kesken
  2. Aseta muuttuja y Aseta poistettava elementtisolmu
  3. Käyttää removeChild() 方法从父节点中删除该元素节点

删除自己 - 删除当前节点

removeChild() 方法是唯一可以删除指定节点的方法。

当您导航到要删除的节点时,可以使用 parentNode Ominaisuus ja removeChild() 方法来删除该节点:

Esimerkki

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

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan books.xml on jo ladattu xmlDoc kesken
  2. Aseta muuttuja y Aseta poistettava elementtisolmu
  3. Käyttää parentNode Ominaisuus ja removeChild() metodia poistaaksesi elementtisolmun

Poista tekstinode

removeChild() Metodi voidaan käyttää myös tekstinodejen poistamiseen:

Esimerkki

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

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan books.xml on jo ladattu xmlDoc kesken
  2. Aseta muuttuja x ensimmäiseksi title-elementtipisteeksi
  3. Aseta muuttuja y Aseta poistettava tekstinode
  4. Käyttää removeChild() metodia poistaaksesi solmun isäntäsolmusta

Käytä vain removeChild() Tekstin poistaminen solmista ei ole yleistä. Voit käyttää nodeValue-ominaisuutta sen sijaan. Katso seuraava kohta.

Tyhjennä tekstinode

nodeValue Ominaisuus voidaan käyttää muuttamaan tai tyhjentämään tekstinodejen arvoa:

Esimerkki

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

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan books.xml on jo ladattu xmlDoc kesken
  2. Hanki ensimmäisen title-elementin ensimmäinen lapsinode
  3. Käyttää nodeValue Ominaisuus poistaa tekstinodeista tekstiä

Poista ominaisuusnode nimellä

removeAttribute() Metodi poistaa ominaisuusnodeja nimellä.

Esimerkki 1

Seuraava koodi poistaa ensimmäisen <book>-elementin "category"-ominaisuuden:

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

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan books.xml on jo ladattu xmlDoc kesken
  2. Käyttää getElementsByTagName() Hanki book-piste
  3. Poista "category"-ominaisuus ensimmäisestä book-elementtipisteestä

Esimerkki 2

Toista ja poista kaikki <book>-elementtien "category"-ominaisuudet:

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

Kokeile itse

Poista ominaisuusnode objektin perusteella

removeAttributeNode() Metodi poistaa ominaisuusnodeja käyttämällä Node-objektia parametrina.

Seuraava koodi poistaa kaikki <book>-elementtien ominaisuudet:

Esimerkki

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);
    }
}

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan books.xml on jo ladattu xmlDoc kesken
  2. Käyttää getElementsByTagName() Hanki kaikki book-solut
  3. Tarkista, onko jokaisella book-elementillä ominaisuus
  4. Jos book-elementissä on ominaisuus, poista se