Analisador PHP XML DOM
O analisador DOM integrado possibilita o processamento de documentos XML em PHP.
O analisador XML DOM
O analisador DOM é um analisador baseado em árvore.
Observe a seguinte fração de documento XML:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
O DOM vê o XML acima como uma estrutura em árvore:
- Nível 1: Documento XML
- Nível 2: Elemento raiz: <from>
- Nível 3: Elemento de texto: "Jani"
Instalação
As funções do analisador DOM fazem parte do núcleo do PHP. Não há necessidade de instalação para usar essas funções.
O arquivo XML
O arquivo XML abaixo ("note.xml") será usado em nosso exemplo:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Carregar e enviar XML
Queremos inicializar o analisador XML, carregar o xml e produzi-lo:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
A saída do código acima será:
Tove Jani Reminder Don't forget me this weekend!
Se você selecionar "Exibir fonte" na janela do navegador, verá o seguinte HTML:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
O exemplo acima cria um DOMDocument-Object e carrega o XML de "note.xml" nele.
Em seguida, a função saveXML() coloca o documento XML interno em uma string, para que possamos produzi-lo.
Loop através de XML
Queremos inicializar o analisador XML, carregar o XML e percorrer todos os elementos do elemento <note>:
<?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 será:
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
No exemplo acima, você vê que existem nós de texto vazios entre cada elemento.
Quando o XML é gerado, geralmente contém espaços em branco entre os nós. O analisador XML DOM os trata como elementos comuns e, se você não estiver ciente deles, às vezes eles causam problemas.
Se você quiser saber mais sobre o XML DOM, visite nosso tutorial sobre XML .