Adição de Nós DOM XML

Adicionar nó - appendChild()

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

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

Atenção:Se a posição do nó é importante, use insertBefore().

O seguinte trecho de código cria um elemento (<edição>) e o adiciona após o último filho do primeiro elemento <book>.

Exemplo 1

newEle = xmlDoc.createElement("edição");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Experimente você mesmo

Exemplo de explicação:

  1. Supondo books.xml Já foi carregado para xmlDoc de
  2. Criar um novo nó <edition>
  3. Adicionar nó ao primeiro elemento <book>.

A função deste trecho de código é a mesma que a anterior, mas o novo elemento adicionou um valor:

Exemplo 2

newEle = xmlDoc.createElement("edição");
newText = xmlDoc.createTextNode("primeira versão");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Experimente você mesmo

Exemplo de explicação:

  1. Supondo books.xml Já foi carregado para xmlDoc de
  2. Criar um novo nó <edition>
  3. Criar um novo nó de texto "primeira edição"
  4. Adicionar este nó de texto ao nó <edition>
  5. Adicionar o nó <edition> ao elemento <book>

Inserir nó - insertBefore()

insertBefore() O método insere um nó antes do nó filho especificado.

Se a posição do nó adicionado for importante, este método é útil:

Exemplo

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

Experimente você mesmo

Exemplo de explicação:

  1. Supondo books.xml Já foi carregado para xmlDoc de
  2. Criar um novo nó de elemento <book>
  3. Inserir este novo nó antes do último nó filho <book> existente
  4. 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) pode adicionar novos nós filhos ao x.

Adicionar novo atributo

setAttribute() O método define o valor do atributo.

Se o atributo não existir, setAttribute() Pode criar um novo atributo:

Exemplo

xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","primeira edição");

Experimente você mesmo

Exemplo de explicação:

  1. Supondo books.xml foi carregado para xmlDoc de
  2. Definir o valor do atributo "edition" do primeiro elemento <book> como "primeira edição"

Atenção:Não existe um método chamado addAttribute(), se o atributo não existir, setAttribute() criará um novo atributo. Se o atributo já existir, o método setAttribute() substituirá o valor existente.

Adicionar texto ao nó de texto - insertData()

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

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

  • offset De onde começar a inserção de caracteres (começa em 0)
  • string - A string a ser inserida

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

Exemplo

xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Meu mais amado");

Experimente você mesmo