Excluir Nó DOM XML

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

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

删除元素节点

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

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

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

Exemplo

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

Experimente você mesmo

Explicação do exemplo:

  1. Supondo books.xml foi carregado para xmlDoc Em
  2. Definir a variável y Definir como o nó de elemento a ser removido
  3. Uso removeChild() 方法从父节点中删除该元素节点

删除自己 - 删除当前节点

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

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

Exemplo

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

Experimente você mesmo

Explicação do exemplo:

  1. Supondo books.xml foi carregado para xmlDoc Em
  2. Definir a variável y Definir como o nó de elemento a ser removido
  3. Uso parentNode Propriedade e removeChild() Método para remover nó de elemento

Remover nó de texto

removeChild() O método também pode ser usado para remover o nó de texto:

Exemplo

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

Experimente você mesmo

Explicação do exemplo:

  1. Supondo books.xml foi carregado para xmlDoc Em
  2. Definir a variável x como o primeiro nó do elemento title
  3. Definir a variável y Definir como o nó de texto a ser removido
  4. Uso removeChild() O método remove o nó do nó pai

Apenas use removeChild() A condição de remoção de texto do nó não é comum. Pode usar a propriedade nodeValue como substituto. Veja o próximo parágrafo.

Limpar nó de texto

nodeValue A propriedade pode ser usada para alterar ou limpar o valor do nó de texto:

Exemplo

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

Experimente você mesmo

Explicação do exemplo:

  1. Supondo books.xml foi carregado para xmlDoc Em
  2. Obter o primeiro nó filho do elemento title
  3. Uso nodeValue Propriedade para limpar o texto do nó de texto

Remover nó de propriedade com base no nome

removeAttribute() O método é usado para remover o nó de propriedade com base no nome.

Exemplo 1

O código a seguir remove a propriedade "category" do primeiro elemento <book>:

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

Experimente você mesmo

Explicação do exemplo:

  1. Supondo books.xml foi carregado para xmlDoc Em
  2. Uso getElementsByTagName() para obter o nó book
  3. Remova a propriedade "category" do primeiro nó do elemento book

Exemplo 2

Loop e remova todas as propriedades "category" do elemento <book>:

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

Experimente você mesmo

Remover nó de propriedade com base no objeto

removeAttributeNode() O método usa um objeto Node como parâmetro para remover o nó de propriedade.

O código a seguir remove todas as propriedades do elemento <book>:

Exemplo

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

Experimente você mesmo

Explicação do exemplo:

  1. Supondo books.xml foi carregado para xmlDoc Em
  2. Uso getElementsByTagName() Para obter todos os nós book
  3. Verifique se cada elemento book tem atributo
  4. Se houver atributo no elemento book, exclua o atributo