Método replaceChild() do XML DOM
Definição e Uso
O método replaceChild() substitui outro nó por um nó filho.
Se bem-sucedido, o método retorna o nó substituído, se falhar, retorna null.
Sintaxe:
elementNode.replaceChild(new_node,old_node)
Parâmetros | Descrição |
---|---|
new_node | Obrigatório. Especifica o novo nó. |
old_node | Obrigatório. Especifica o nó filho a ser substituído. |
Exemplo
Em todos os exemplos, usaremos o arquivo XML books.xmle a função JavaScript loadXMLDoc()。
A seguir, o trecho de código substitui o primeiro elemento <title> do primeiro elemento <book> no arquivo "books.xml":
//verificar se o primeiro nó filho é um nó de elemento
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//criar um elemento de título e um nó de texto
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Refeições da Família Giada");
//adicionar o nó de texto ao nó de título,
newNode.appendChild(newText);
//substituir o último nó pelo novo nó
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}
Saída:
Jantares familiares de Giada Harry Potter XQuery Kick Start Learning XML
Notas:O Internet Explorer ignorará os nós de texto em branco gerados entre nós (por exemplo, símbolos de nova linha), enquanto o Mozilla não fará isso. Portanto, no exemplo acima, criamos uma função para criar os elementos filhos corretos.
Dica:Para mais informações sobre as diferenças entre os navegadores IE e Mozilla, acesse o tutorial XML DOM no CodeW3C.com Navegador DOM Esta seção.