Alteração de Valores de Nós XML DOM

A propriedade nodeValue é usada para alterar o valor do nó.

O método setAttribute() é usado para alterar o valor do atributo.

Exemplo

Abaixo está um exemplo usando o arquivo XML books.xml.

Função loadXMLDoc()Localizado no JavaScript externo, usado para carregar o arquivo XML.

Alterar o nó de texto do elemento
Este exemplo usa a propriedade nodeValue para alterar o nó de texto do primeiro elemento <title> em "books.xml".
Através do uso de setAttribute para alterar o valor do atributo
Este exemplo usa o método setAttribute() para alterar o valor do atributo "category" do primeiro <book>.
Através do uso de nodeValue para alterar o valor do atributo
Este exemplo usa a propriedade nodeValue para alterar o valor do atributo "category" do primeiro <book>.

Alterar o valor do elemento

No DOM, cada componente é um nó. Os nós de elemento não têm valor de texto.

O texto do nó de elemento é armazenado em subnós. Este nó é chamado de nó de texto.

A maneira de alterar o texto do elemento é alterar o valor deste subnó (nó de texto).

Alterar o valor do nó de texto

A propriedade nodeValue pode ser usada para alterar o valor do nó de texto.

O trecho de código abaixo altera o valor do nó de texto do primeiro elemento <title>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Hello World";

Exemplo de explicação:

  • Ao usar loadXMLDoc() Mude "books.xml" Carregar xmlDoc
  • Obtenha o nó de texto do primeiro elemento <title>
  • Mude o valor do nó de texto deste nó de texto para "Hello World"

TIY

Varre e altere todos os nós de texto dos elementos <title>:TIY

Alterar o valor do atributo

No DOM, os atributos também são nós. Diferente dos nós de elemento, os nós de atributo possuem valor de texto.

A maneira de alterar o valor do atributo é alterar seu valor de texto.

Pode ser feito usando o método setAttribute() ou a propriedade nodeValue do nó do atributo.

Através do uso de setAttribute() para alterar o atributo

O método setAttribute() define o valor de um atributo existente ou cria um novo atributo.

O código a seguir altera o atributo category do elemento <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("category","child");

Exemplo de explicação:

  • Ao usar loadXMLDoc() Mude "books.xml" Carregar xmlDoc
  • Obtenha o primeiro elemento <book>
  • Mude o valor do atributo "category" para "child"

TIY

Navegue por todos os <title> e adicione um novo atributo:TIY

Notas:Se o nó de atributo não existir, será criado um novo atributo (com o nome e valor especificados).

Ao usar nodeValue alterar o atributo

A propriedade nodeValue pode ser usada para alterar o valor do nó de atributo:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0]
y=x.getAttributeNode("category");
y.nodeValue="child";

Exemplo de explicação:

  • Ao usar loadXMLDoc() Mude "books.xml" Carregar xmlDoc
  • Obtenha o atributo "category" do primeiro elemento <book>
  • Mude o valor do nó de atributo para "child"

TIY