DOM XML do PHP
- Página Anterior Parser Expat XML
- Próxima Página SimpleXML XML
O analisador DOM integrado torna possível manipular documentos XML no PHP.
O que é DOM?
O W3C DOM fornece um conjunto de objetos padrão para documentos HTML e XML, bem como interfaces padrão para acessar e operar esses documentos.
O W3C DOM é dividido em diferentes partes (Core, XML e HTML) e diferentes níveis (DOM Level 1/2/3):
- Core DOM - Define um conjunto de objetos padrão para qualquer documento estruturado
- XML DOM - Define um conjunto de objetos padrão para documentos XML
- HTML DOM - Define um conjunto de objetos padrão para documentos HTML
Se você quiser aprender mais sobre XML DOM, acesse nosso Tutorial XML DOM.
Análise XML
Para ler e atualizar - criar, manipular e processar um documento XML, você precisa de um analisador XML.
Existem dois tipos básicos de analisadores XML:
- Analisador baseado em árvore:Este analisador converte o documento XML em uma estrutura em forma de árvore. Ele analisa todo o documento e fornece uma API para acessar os elementos da árvore, como o Document Object Model (DOM).
- Analisador baseado em eventos:Vê o documento XML como uma série de eventos. Quando um evento específico ocorre, o analisador chama uma função para lidar com ele.
O analisador DOM é um analisador baseado em árvore.
Veja a seguir um fragmento de documento XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
O DOM XML vê o XML como uma estrutura em forma de árvore:
- Nível 1: Documento XML
- Nível 2: Elemento raiz: <from>
- Nível 3: Elemento de texto: "John"
Instalação
As funções do analisador DOM XML são parte integrante do PHP. Não é necessário instalar para usá-las.
Arquivo XML
Vamos usar o seguinte arquivo XML em nosso exemplo:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Lembrete</heading> <body>Não se esqueça da reunião!</body> </note>
Carregar e exibir XML
Precisamos inicializar o analisador XML, carregar o XML e então exibi-lo:
Exemplo
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
A saída do código acima é:
George John Lembrete Não se esqueça da reunião!
Se você visualizar o código-fonte na janela do navegador, verá o seguinte HTML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Lembrete</heading> <body>Não se esqueça da reunião!</body> </note>
No exemplo acima, foi criado um objeto DOMDocument e o XML contido em "note.xml" foi carregado para esse objeto de documento.
A função saveXML() coloca o documento XML interno em uma string, assim podemos imprimi-lo.
Percorrer XML
Precisamos inicializar o analisador XML, carregar o XML e percorrer todos os elementos <note> de dentro:
Exemplo
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } ?>
A saída do código acima é:
#text = to = George #text = from = John #text = heading = Lembrete #text = body = Não se esqueça da reunião! #text =
No exemplo acima, você viu nós de texto vazios entre cada elemento.
Quando o XML é gerado, ele geralmente contém espaços em branco entre os nós. O analisador XML DOM os trata como elementos normais, e se você não prestar atenção neles, às vezes pode surgir problemas.
Se você quiser aprender mais sobre XML DOM, acesse nosso Tutorial XML DOM.
- Página Anterior Parser Expat XML
- Próxima Página SimpleXML XML