XML DOM Avançado XML DOM - Avançado Anteriormente neste tutorial, apresentamos o XML DOM e usamos o método getElementsByTagName() do XML DOM para recuperar dados de um documento XML. Neste capítulo combinaremos alguns outros métodos XML DOM importantes. Você pode aprender mais sobre XML DOM em nosso tutorial XML DOM. Obtenha o valor do elemento no arquivo XML usado no exemplo a seguir: books.xml. O exemplo a seguir recupera o valor de texto do primeiro elemento <title>: Exemplo
txt=xmlDoc.getElementsByTagName("título")[0].childNodes[0].nodeValue;
Experimente »
O exemplo a seguir recupera o valor de texto do atributo "lang" do primeiro elemento <title>:
txt=xmlDoc.getElementsByTagName("título")[0].getAttribute("lang");
Experimente »
O exemplo a seguir altera o valor de texto do primeiro elemento <title>:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Cozimento Fácil";
Experimente »
O método setAttribute() do XML DOM pode ser usado para alterar o valor de um atributo existente ou para criar um novo atributo.
O exemplo a seguir cria um novo atributo (edition="first") e o adiciona a cada elemento <book>:
x=xmlDoc.getElementsByTagName("livro");for(i=0;i<x.length;i++){x[i].setAttribute("edição","primeira");}
Experimente »
O método createElement() do XML DOM cria um novo nó de elemento.
O método createTextNode() do XML DOM cria um novo nó de texto.
O método appendChild() do XML DOM adiciona um nó filho a um nó (após o último nó filho).
Para criar um novo elemento com conteúdo de texto, crie um novo nó de elemento e um novo nó de texto ao mesmo tempo e, em seguida, anexe-o ao nó existente.
O exemplo a seguir cria um novo elemento (<edition>) com o seguinte texto: Primeiro, e depois o adiciona ao primeiro elemento <book>:
newel=xmlDoc.createElement("edição");newtext=xmlDoc.createTextNode("Primeiro");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("livro");x[0].appendChild(newel);
Experimente »
Exemplo de explicação
Crie um elemento <edition>
Crie um nó de texto com valor “Primeiro”
Anexe este nó de texto a um novo elemento <edition>
Anexe o elemento <edition> ao primeiro elemento <book>
O exemplo a seguir exclui o primeiro nó do primeiro elemento <book>:
x=xmlDoc.getElementsByTagName("livro")[0];x.removeChild(x.childNodes[0]);
Experimente »
Nota: Os resultados do exemplo acima podem variar dependendo do navegador utilizado. O Firefox trata os caracteres de nova linha como nós de texto vazios, mas o Internet Explorer não. Você pode ler mais sobre esse problema e como evitá-lo em nosso tutorial XML DOM.