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.