XML DOM remover nós
O método removeChild() remove um nó especificado.
O método removeAttribute() remove um atributo especificado.
Experimente você mesmo - Exemplos
Os exemplos usam o arquivo XML books.xml .
Este exemplo usa removeChild() para remover o primeiro elemento <book>.
Este exemplo usa parentNode e removeChild() para remover o elemento <book> atual.
Este exemplo usa removeChild() para remover o nó de texto do primeiro elemento <title>.
Este exemplo usa a propriedade nodeValue() para limpar o nó de texto do primeiro elemento <title>.
Este exemplo usa removeAttribute() para remover o atributo "category" do primeiro elemento <book>.
Este exemplo usa removeAttributeNode() para remover todos os atributos de todos os elementos <book>.
Remover um nó de elemento
O método removeChild() remove um nó especificado.
Quando um nó é removido, todos os nós filhos também são removidos.
Este código removerá o primeiro elemento <book> do xml carregado:
Exemplo
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Defina a variável y para ser o nó do elemento a ser removido
- Remova o nó do elemento usando o método removeChild() do nó pai
Remover a mim mesmo - Remover o nó atual
O método removeChild() é a única maneira de remover um nó especificado.
Quando você tiver navegado até o nó que deseja remover, é possível remover esse nó usando a propriedade parentNode e o método removeChild():
Exemplo
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Defina a variável y para ser o nó do elemento a ser removido
- Remova o nó do elemento usando a propriedade parentNode e o método removeChild()
Remover um nó de texto
O método removeChild() também pode ser usado para remover um nó de texto:
Exemplo
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Defina a variável x para ser o primeiro nó do elemento de título
- Defina a variável y para ser o nó de texto a ser removido
- Remova o nó do elemento usando o método removeChild() do nó pai
Não é muito comum usar removeChild() apenas para remover o texto de um nó. A propriedade nodeValue pode ser usada em vez disso. Veja o próximo parágrafo.
Limpar um nó de texto
A propriedade nodeValue pode ser usada para alterar o valor de um nó de texto:
Exemplo
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Obtenha o primeiro nó filho do primeiro elemento de título.
- Use a propriedade nodeValue para limpar o texto do nó de texto
Remover um nó de atributo por nome
O método removeAttribute( ) remove um nó de atributo por seu nome.
Exemplo: removeAttribute('categoria')
Este código remove o atributo "category" no primeiro elemento <book>:
Exemplo
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Use getElementsByTagName() para obter nós de livro
- Remova o atributo "category" do primeiro nó do elemento book
Percorra e remova o atributo "category" de todos os elementos <book>:
Remover nós de atributo por objeto
O método removeAttributeNode( ) remove um nó de atributo, usando o objeto nó como parâmetro.
Exemplo: removeAttributeNode(x)
Este código remove todos os atributos de todos os elementos <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);
}
}
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Use getElementsByTagName() para obter todos os nós de livro
- Para cada elemento do livro verifique se existem atributos
- Enquanto houver atributos em um elemento de livro, remova o atributo