DOM XML - Remover Nó
Neste capítulo, estudaremos sobre a operação XML DOM Remove Node . A operação de remoção do nó remove o nó especificado do documento. Esta operação pode ser implementada para remover os nós como nó de texto, nó de elemento ou nó de atributo.
A seguir estão os métodos que são usados para a operação de remoção do nó -
removeChild()
removeAttribute()
removeChild ()
O método removeChild () remove o nó filho indicado por oldChild da lista de filhos e o retorna. Remover um nó filho é equivalente a remover um nó de texto. Portanto, remover um nó filho remove o nó de texto associado a ele.
Sintaxe
A sintaxe para usar removeChild () é a seguinte -
Node removeChild(Node oldChild) throws DOMException
Onde,
oldChild - é o nó que está sendo removido.
Este método retorna o nó removido.
Exemplo - Remover Nó Atual
O exemplo a seguir (removecurrentnode_example.htm) analisa um documento XML ( node.xml ) em um objeto XML DOM e remove o nó especificado <ContactNo> do nó pai.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
document.write("<b>Before remove operation, total ContactNo elements: </b>");
document.write(xmlDoc.getElementsByTagName("ContactNo").length);
document.write("<br>");
x = xmlDoc.getElementsByTagName("ContactNo")[0];
x.parentNode.removeChild(x);
document.write("<b>After remove operation, total ContactNo elements: </b>");
document.write(xmlDoc.getElementsByTagName("ContactNo").length);
</script>
</body>
</html>
No exemplo acima -
x = xmlDoc.getElementsByTagName ("ContactNo") [0] obtém o elemento <ContactNo> indexado em 0.
x.parentNode.removeChild (x); remove o elemento <ContactNo> indexado em 0 do nó pai.
Execução
Salve este arquivo como removecurrentnode_example.htm no caminho do servidor (este arquivo e node.xml devem estar no mesmo caminho em seu servidor). Obtemos o seguinte resultado -
Before remove operation, total ContactNo elements: 3
After remove operation, total ContactNo elements: 2
Exemplo - Remover Nó de Texto
O exemplo a seguir (removetextNode_example.htm) analisa um documento XML ( node.xml ) em um objeto XML DOM e remove o nó filho especificado <FirstName>.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName("FirstName")[0];
document.write("<b>Text node of child node before removal is:</b> ");
document.write(x.childNodes.length);
document.write("<br>");
y = x.childNodes[0];
x.removeChild(y);
document.write("<b>Text node of child node after removal is:</b> ");
document.write(x.childNodes.length);
</script>
</body>
</html>
No exemplo acima -
x = xmlDoc.getElementsByTagName ("FirstName") [0]; - obtém o primeiro elemento <FirstName> ox indexado em 0.
y = x.nodos filhos [0]; - nesta linha, y contém o nó filho a ser removido.
x.removeChild (y); - remove o nó filho especificado.
Execução
Salve este arquivo como removetextNode_example.htm no caminho do servidor (este arquivo e node.xml devem estar no mesmo caminho em seu servidor). Obtemos o seguinte resultado -
Text node of child node before removal is: 1
Text node of child node after removal is: 0
removeAttribute ()
O método removeAttribute () remove um atributo de um elemento por nome.
Sintaxe
A sintaxe para usar removeAttribute () é a seguinte -
void removeAttribute(java.lang.String name) throws DOMException
Onde,
nome - é o nome do atributo a ser removido.
Exemplo
O exemplo a seguir (removeelementattribute_example.htm) analisa um documento XML ( node.xml ) em um objeto XML DOM e remove o nó de atributo especificado.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName('Employee');
document.write(x[1].getAttribute('category'));
document.write("<br>");
x[1].removeAttribute('category');
document.write(x[1].getAttribute('category'));
</script>
</body>
</html>
No exemplo acima -
document.write (x [1] .getAttribute ('categoria')); - o valor da categoria de atributo indexado na 1ª posição é invocado.
x [1] .removeAttribute ('categoria'); - remove o valor do atributo.
Execução
Salve este arquivo como removeelementattribute_example.htm no caminho do servidor (este arquivo e node.xml devem estar no mesmo caminho em seu servidor). Obtemos o seguinte resultado -
Non-Technical
null