Método replaceChild() do XML DOM

Manual de referência do objeto Node

Definição e uso

O método replaceChild() pode substituir um nó filho por outro.

Se a substituição for bem-sucedida, este método retornará o nó substituído, se a substituição falhar, retornará NULL.

Sintaxe:

nodeObject.replaceChild(new_node,old_node)
Parâmetros Descrição
new_node Obrigatório. Especifica o novo nó.
old_node Obrigatório. Especifica o nó a ser substituído.

Dicas e notas

Nota:O Internet Explorer ignorará os nós de texto em branco gerados entre os nós (por exemplo, sinais de nova linha), enquanto o Mozilla não fará isso. Portanto, no exemplo a seguir, usaremos uma função para verificar o tipo de nó do primeiro nó filho.

O tipo de nó do nó de elemento é 1, portanto, se o primeiro nó filho não for um nó de elemento, ele se moverá para o próximo nó e continuará a verificar se este nó é um nó de elemento. Este processo continuará até que o primeiro nó filho de elemento seja encontrado. Com esse método, podemos obter o método correto no Internet Explorer e no Mozilla.

Dica:Para mais informações sobre as diferenças entre o XML DOM no Internet Explorer e no Mozilla, acesse nosso Navegador DOM capítulo.

instância

Em todos os exemplos, usaremos o arquivo XML books.xmle a função JavaScript loadXMLDoc()

O seguinte trecho de código pode substituir o primeiro elemento <book< com o elemento <title>:

//verificar se o primeiro nó filho é um nó de elemento
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
//criar um elemento de título e um nó de texto
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Jantares da Família Giada");
//add the text node to the title node,
newNode.appendChild(newText);
//replace the first child node with the new node
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//output all titles
var y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
  {
  document.write(y[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Saída:

Jantares da Família Giada
Harry Potter
XQuery Kick Start
Learning XML

Manual de referência do objeto Node