Eliminazione dei nodi DOM XML

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

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

删除元素节点

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

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

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

Esempio

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. Impostare la variabile y Impostare il nodo elemento da eliminare
  3. 使用 removeChild() 方法从父节点中删除该元素节点

删除自己 - 删除当前节点

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

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

Esempio

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. Impostare la variabile y Impostare il nodo elemento da eliminare
  3. 使用 parentNode Proprietà e removeChild() Il metodo per eliminare il nodo elemento

Eliminazione del nodo testo

removeChild() Il metodo può anche essere utilizzato per eliminare il nodo testo:

Esempio

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. Impostare la variabile x Impostare il nodo <title> primo
  3. Impostare la variabile y Impostare il nodo da rimuovere
  4. 使用 removeChild() Il metodo per rimuovere il nodo dal nodo genitore

Utilizzare solo removeChild() La situazione di rimozione del testo dal nodo non è comune. Può essere sostituita dall'attributo nodeValue. Vedi il paragrafo successivo.

Svuotamento del nodo testo

nodeValue L'attributo può essere utilizzato per modificare o svuotare il valore del nodo testo:

Esempio

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. Ottenere il primo nodo figlio dell'elemento <title>
  3. 使用 nodeValue Proprietà per pulire il testo del nodo

Eliminazione del nodo proprietà in base al nome

removeAttribute() Il metodo viene utilizzato per eliminare il nodo proprietà in base al nome.

Esempio 1

Il seguente codice elimina la proprietà "category" dal primo elemento <book>:

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. 使用 getElementsByTagName() Per ottenere il nodo <book>
  3. Eliminazione della proprietà "category" dal primo elemento <book>

Esempio 2

Ciclo e eliminazione di tutte le proprietà "category" degli elementi <book>:

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

亲自试一试

Eliminazione del nodo proprietà in base all'oggetto

removeAttributeNode() Il metodo utilizza un oggetto Node come parametro per eliminare il nodo proprietà.

Il seguente codice elimina tutte le proprietà degli elementi <book>:

Esempio

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. 使用 getElementsByTagName() 来获取所有 book 节点
  3. 检查每个 book 元素是否有属性
  4. 如果在某个 book 元素中存在属性,则删除该属性