Adição de Nós XML DOM

Exemplo

O exemplo a seguir usa arquivo XML books.xml.

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

Adicionar um nó após o último nó filho
Este exemplo usa o método appendChild() para adicionar um nó filho a um nó existente.
Adicionar um nó antes do nó filho especificado
Este exemplo usa o método insertBefore() para inserir um nó antes de um nó filho especificado.
Adicionar um novo atributo
Este exemplo usa o método setAttribute() para adicionar um novo atributo.
Adicionar dados ao nó de texto
Este exemplo usa insertData() para inserir dados em um nó de texto existente.

Adicionar nó - appendChild()

O método appendChild() adiciona um nó filho a um nó existente.

O novo nó será adicionado (anexado) após qualquer nó filho existente.

Observação:Se a posição do nó for importante, use o método insertBefore().

O trecho de código a seguir cria um elemento (<edition>) e o adiciona após o último nó filho do primeiro elemento <book>:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Exemplo de explicação:

  1. Ao usar loadXMLDoc() Adicionar "books.xmlCarregar no xmlDoc
  2. Criar um novo nó <edition>.
  3. Adicionar este nó ao primeiro elemento <book>.

TIY

Repetir e adicionar um elemento a todos os elementos <book>:TIY

Inserir nó - insertBefore()

O método insertBefore() é usado para inserir um nó antes do nó filho especificado.

Este método é útil quando a posição do nó adicionado é importante.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode, y);

Exemplo de explicação:

  1. Ao usar loadXMLDoc() Adicionar "books.xmlCarregar no xmlDoc
  2. Criar um novo nó de elemento <book>.
  3. Inserir este nó antes do último nó do elemento <book>.

TIY

Se o segundo parâmetro de insertBefore() for null, o novo nó será adicionado após o último nó filho existente.

x.insertBefore(newNode, null) e x.appendChild(newNode) Ambos podem adicionar um novo nó filho a x.

Adicionar novo atributo

O método addAtribute() não existe.

Se o atributo não existir, o método setAttribute() pode criar um novo atributo:

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

Exemplo de explicação:

  1. Ao usar loadXMLDoc() Adicionar "books.xmlCarregar no xmlDoc
  2. Definir (criar) o valor do atributo "edition" do primeiro elemento <book> como "first"

TIY

Observação:Se o atributo já existir, o método setAttribute() substituirá o valor existente.

Adicionar texto ao nó de texto - insertData()

O método insertData() insere dados em um nó de texto existente.

O método insertData() tem dois parâmetros:

  • offset - Onde começar a inserir caracteres (começa com 0)
  • string - A string a ser inserida

O seguinte trecho de código adicionará "Easy" ao primeiro nó de texto do elemento <title> do XML carregado:

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

TIY