O analisador DOM integrado torna possível processar documentos XML em PHP.
W3C DOM fornece um conjunto padrão de objetos para documentos HTML e XML, bem como uma interface padrão para acessar e manipular esses documentos. O DOM W3C é dividido em diferentes partes (Core, XML e HTML) e diferentes níveis (DOM Nível 1/2/3): * Core DOM - define um conjunto padrão de objetos para qualquer documento estruturado * XML DOM - para documentos XML Definindo um conjunto padrão de objetos* HTML DOM - Definindo um conjunto padrão de objetos para documentos HTML Para saber mais sobre o XML DOM, visite nosso tutorial XML DOM.
Para ler e atualizar – criar 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 documentos XML em uma estrutura de árvore. Ele analisa todo o documento e fornece acesso aos elementos da árvore, como o Document Object Model (DOM).
Analisador baseado em eventos: trata um documento XML como uma série de eventos. Quando ocorre um evento específico, o analisador chama uma função para tratá-lo.
O analisador DOM é um analisador baseado em árvore.
Por favor, observe o seguinte fragmento de documento XML:
<?xml version="1.0" encoding="ISO-8859-1"?><from>Jani</from>
XML DOM trata 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"
A função do analisador XML DOM é parte integrante do núcleo do PHP. Nenhuma instalação é necessária para usar essas funções.
O seguinte arquivo XML será usado em nosso exemplo:
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Lembrete</heading><body>Don não se esqueça de mim neste fim de semana!</body></note>
Precisamos inicializar o analisador XML, carregar o XML e produzi-lo:
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");print $xmlDoc->saveXML();?>
O código acima irá gerar:
ToveJaniReminder Não se esqueça de mim neste fim de semana!
Se você visualizar o código-fonte em uma janela do navegador, verá o seguinte HTML:
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Lembrete</heading><body>Don não se esqueça de mim neste fim de semana!</body></note>
O exemplo acima cria um DOMDocument-Object e carrega o XML em "note.xml" neste objeto de documento.
A função saveXML() coloca o documento XML interno em uma string para que possamos produzi-lo.
Queremos inicializar o analisador XML, carregar o XML e iterar por todos os elementos do elemento <note>:
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { imprimir $item-> nodeName . " = " $item->nodeValue .
O código acima irá gerar:
#text = para = Tove#text = from = Jani#text = header = Reminder#text = body = Não se esqueça de mim neste fim de semana!#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 normais, o que às vezes pode causar problemas se você não prestar atenção neles.
Para saber mais sobre XML DOM, visite nosso tutorial XML DOM.