Tutorial de XML

XML INÍCIO Introdução ao XML XML Como usar Árvore XML Sintaxe XML Elementos XML Atributos XML Namespaces XML Exibição XML XML HttpRequest Analisador de XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validador de XML XML DTD Esquema XML Servidor XML Exemplos XML Teste de XML Certificado XML

XML AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

XML DOM

Introdução ao DOM Nós DOM Acesso ao DOM Informações do nó DOM Lista de nós DOM Travessia do DOM Navegação DOM Valores de obtenção do DOM Nós de alteração do DOM Remoção de nós do DOM Substituir nós DOM DOM Criar nós DOM Adicionar nós Nós clones DOM Exemplos de DOM

Tutorial XPath

Introdução ao XPath Nós XPath Sintaxe XPath Eixos XPath Operadores XPath Exemplos de XPath

Tutorial XSLT

Introdução ao XSLT Idiomas XSL Transformação XSLT XSLT <modelo> XSLT <valor-de> XSLT <para-cada> XSLT <classificar> XSLT <if> XSLT <escolha> Aplicar XSLT XSLT no cliente XSLT no servidor XSLT Editar XML Exemplos de XSLT

Tutorial XQuery

Introdução ao XQuery Exemplo de XQuery XQuery FLWOR XQuery HTML Termos de XQuery Sintaxe XQuery Adicionar XQuery Seleção de XQuery Funções XQuery

XML DTD

Introdução DTD Blocos de construção de DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Exemplos de DTD

Esquema XSD

Introdução ao XSD XSD Como fazer XSD <esquema> Elementos XSD Atributos XSD Restrições XSD

Complexo XSD

Elementos XSD XSD vazio Apenas elementos XSD Somente texto XSD XSD Misto Indicadores XSD XSD <qualquer> XSD <qualquer atributo> Substituição XSD Exemplo de XSD

Dados XSD

Cadeia XSD Data XSD XSD Numérico XSD Misc Referência XSD

Serviços da Web

Serviços XML XML WSDL XML SOAP XML RDF XML RSS

Referências

Tipos de nós DOM Nó DOM Lista de nós DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentário DOM DOM XMLHttpRequest Analisador de DOM Elementos XSLT Funções XSLT/XPath

×

Header

Tutorial XML DOM


XML DOM

DOM node tree

O que é o DOM?

O DOM define um padrão para acessar e manipular documentos:

"O Document Object Model (DOM) do W3C é uma plataforma e uma interface de linguagem neutra que permite que programas e scripts acessem e atualizem dinamicamente o conteúdo, a estrutura e o estilo de um documento."

O HTML DOM define uma forma padrão para acessar e manipular documentos HTML. Apresenta um documento HTML como uma estrutura em árvore.

O XML DOM define uma forma padrão para acessar e manipular documentos XML. Apresenta um documento XML como uma estrutura em árvore.

Compreender o DOM é uma obrigação para quem trabalha com HTML ou XML.


O HTML DOM

Todos os elementos HTML podem ser acessados ​​através do HTML DOM.

Este exemplo altera o valor de um elemento HTML com id="demo":

Exemplo

<h1 id="demo">This is a Heading</h1>

<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>

Este exemplo altera o valor do primeiro elemento <h1> em um documento HTML:

Exemplo

<h1>This is a Heading</h1>

<h1>This is a Heading</h1>

<script>
document.getElementsByTagName("h1")[0].innerHTML = "Hello World!";
</script>

Nota: Mesmo que o documento HTML contenha apenas UM elemento <h1>, você ainda precisa especificar o índice do array [0], pois o método getElementsByTagName() sempre retorna um array.

Você pode aprender muito mais sobre o HTML DOM em nosso tutorial de JavaScript .



O XML DOM

Todos os elementos XML podem ser acessados ​​através do XML DOM.

O XML DOM é:

  • Um modelo de objeto padrão para XML
  • Uma interface de programação padrão para XML
  • Independente de plataforma e idioma
  • Um padrão W3C

Em outras palavras: O XML DOM é um padrão de como obter, alterar, adicionar ou excluir elementos XML.


Obter o valor de um elemento XML

Este código recupera o valor de texto do primeiro elemento <title> em um documento XML:

Exemplo

txt = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

Carregando um arquivo XML

O arquivo XML usado nos exemplos abaixo é books.xml .

Este exemplo lê "books.xml" em xmlDoc e recupera o valor de texto do primeiro elemento <title> em books.xml:

Exemplo

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    document.getElementById("demo").innerHTML =
    xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
}
</script>

</body>
</html>

Exemplo explicado

  • xmlDoc - o objeto XML DOM criado pelo analisador.
  • getElementsByTagName("title")[0] - obtém o primeiro elemento <title>
  • childNodes[0] - o primeiro filho do elemento <title> (o nó de texto)
  • nodeValue - o valor do nó (o próprio texto)

Carregando uma string XML

Este exemplo carrega uma string de texto em um objeto XML DOM e extrai as informações dele com JavaScript:

Exemplo

<html>
<body>

<p id="demo"></p>

<script>
var text, parser, xmlDoc;

text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>

</body>
</html>

Interface de programação

O DOM modela XML como um conjunto de objetos de nó. Os nós podem ser acessados ​​com JavaScript ou outras linguagens de programação. Neste tutorial usamos JavaScript.

A interface de programação para o DOM é definida por um conjunto de propriedades e métodos padrão.

Propriedades são muitas vezes referidas como algo que é (ou seja, nodename é "book").

Os métodos são frequentemente referidos como algo que é feito (ou seja, excluir "livro").


Propriedades XML DOM

Estas são algumas propriedades típicas do DOM:

  • x.nodeName - o nome de x
  • x.nodeValue - o valor de x
  • x.parentNode - o nó pai de x
  • x.childNodes - os nós filhos de x
  • x.attributes - os nós de atributos de x

Nota: Na lista acima, x é um objeto de nó.


Métodos XML DOM

  • x.getElementsByTagName( name ) - obtém todos os elementos com um nome de tag especificado
  • x.appendChild( node ) - insere um nodo filho em x
  • x.removeChild( node ) - remove um nó filho de x

Nota: Na lista acima, x é um objeto de nó.