XML DOM Adicionar nós
Experimente você mesmo - Exemplos
Os exemplos abaixo usam o arquivo XML books.xml .
Este exemplo usa appendChild() para adicionar um nó filho a um nó existente.
Este exemplo usa insertBefore() para inserir um nó antes de um nó filho especificado.
Este exemplo usa o método setAttribute() para adicionar um novo atributo.
Este exemplo usa insertData() para inserir dados em um nó de texto existente.
Adicionar um nó - appendChild()
O método appendChild() adiciona um nó filho a um nó existente.
O novo nó é adicionado (anexado) após qualquer nó filho existente.
Nota: Use insertBefore() se a posição do nó for importante.
Este fragmento de código cria um elemento (<edition>) e o adiciona após o último filho do primeiro elemento <book>:
Exemplo
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Crie um novo nó <edição>
- Anexe o nó ao primeiro elemento <book>
Este fragmento de código faz o mesmo que acima, mas o novo elemento é adicionado com um valor:
Exemplo
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Crie um novo nó <edição>
- Crie um novo nó de texto "primeiro"
- Anexe o nó de texto ao nó <edition>
- Anexe o nó <addition> ao elemento <book>
Inserir um nó - insertBefore()
O método insertBefore() insere um nó antes de um nó filho especificado.
Este método é útil quando a posição do nó adicionado é importante:
Exemplo
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Crie um novo nó de elemento <book>
- Insira o novo nó na frente do último nó do elemento <book>
Se o segundo parâmetro de insertBefore() for nulo, o novo nó será adicionado após o último nó filho existente.
x.insertBefore(newNode,null) e x.appendChild(newNode) anexarão um novo nó filho a x.
Adicionar um novo atributo
O método setAttribute() define o valor de um atributo.
Exemplo
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Exemplo explicado:
- Suponha que " books.xml " tenha sido carregado em xmlDoc
- Defina o valor do atributo "edition" como "first" para o primeiro elemento <book>
Não existe um método chamado add Attribute()
O setAttribute() criará um novo atributo se o atributo não existir.
Nota: Se o atributo já existir, o método setAttribute() substituirá o valor existente.
Adicionar texto a um 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 em zero)
- string - A string a ser inserida
O fragmento de código a seguir adicionará "Easy" ao nó de texto do primeiro elemento <title> do XML carregado:
Exemplo
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");