Método replaceChild() do XML DOM
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