Exclusão de Nós XML DOM

O método removeChild() remove o nó especificado.

O método removeAttribute() remove o atributo especificado.

Exemplo

A seguir, um exemplo usando arquivo XML books.xml

Função loadXMLDoc(),localizado no JavaScript externo, usado para carregar o arquivo XML.

Remover nó de elemento
Este exemplo usa removeChild() para remover o primeiro elemento <book>.
Remover nó de elemento atual
Este exemplo usa parentNode e removeChild() para remover o elemento <book> atual.
Excluir nó de texto
Este exemplo usa removeChild() para remover o nó de texto do primeiro elemento <title>.
Limpar o texto do nó de texto
Este exemplo usa a propriedade nodeValue() para limpar o nó de texto do primeiro elemento <title>.
Remover atributo com base no nome
Este exemplo usa removeAttribute() para remover o atributo "category" do primeiro elemento <book>.
Remover atributo com base no objeto
Este exemplo usa removeAttributeNode() para remover todos os atributos do elemento <book>.

Remover nó de elemento

O método removeChild() remove o nó especificado.

Quando um nó é removido, todos seus nós filhos também são removidos.

O código fragmento a seguir remove o primeiro elemento <book> do xml carregado:

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

Exemplo de explicação:

  • Ao usar loadXMLDoc() Coloque "books.xml"Carregar xmlDoc"
  • Definir a variável y como o nó de elemento a ser excluído
  • Usar o método removeChild() para excluir nó de elemento do nó pai

TIY

Excluir a si mesmo - excluir o nó atual

O método removeChild() é o único método que pode excluir o nó especificado.

Quando você já localizou o nó a ser excluído, pode usar a propriedade parentNode e o método removeChild() para excluir este nó:

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

Exemplo de explicação:

  • Ao usar loadXMLDoc() Coloque "books.xml"Carregar xmlDoc"
  • Definir a variável y como o nó de elemento a ser excluído
  • Usar a propriedade parentNode e o método removeChild() para excluir este nó de elemento

TIY

Excluir nó de texto

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

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

Exemplo de explicação:

  • Ao usar loadXMLDoc() Coloque "books.xml"Carregar xmlDoc"
  • Definir a variável x como o nó do primeiro elemento title
  • Definir a variável y como o nó de texto a ser excluído
  • Usar o método removeChild() para excluir nó do nó pai

TIY

Não muito usado removeChild() para excluir texto do nó. Pode ser substituído pela propriedade nodeValue. Veja o próximo parágrafo.

Limpar nó de texto

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

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue=""; 

Exemplo de explicação:

  • Ao usar loadXMLDoc() Coloque "books.xml"Carregar xmlDoc"
  • Definir a variável x como o nó de texto do primeiro elemento title
  • Usar a propriedade nodeValue para limpar o nó de texto do nó de texto

TIY

Loop e altere o nó de texto de todos os elementos <title>: TIY

Excluir nó de atributo com base no nome

O método removeAttribute(name) é usado para excluir o nó de atributo com base no nome.

Exemplo: removeAttribute('category')

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

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

Exemplo de explicação:

  • Ao usar loadXMLDoc() Coloque "books.xml"Carregar xmlDoc"
  • Usar getElementsByTagName() para obter o nó book
  • Exclua a propriedade "category" do primeiro nó do elemento book

TIY

Navegue e exclua todas as propriedades "category" dos elementos <book>: TIY.

Remoção de nó de atributo com base no objeto

O método removeAttributeNode() remove o nó de atributo usando o objeto Node como parâmetro.

Exemplo: removeAttributeNode(x)

O código a seguir remove todos os atributos de todos os elementos <book>:

xmlDoc=loadXMLDoc("books.xml");
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);
  }
}

Exemplo de explicação:

  • Ao usar loadXMLDoc() Coloque "books.xml"Carregar xmlDoc"
  • Use getElementsByTagName() para obter todos os nós book
  • Verifique se cada elemento book possui atributos
  • Se houver atributos no elemento book, exclua o atributo

TIY