Escolar Documentos
Profissional Documentos
Cultura Documentos
Administração Central
Cetec Capacitações
O modelo implementado pela interface DOM é a forma mais flexível para manipulação do
conteúdo de um documento XML. Este modelo não é limitado pela ordem em que as estruturas do
documento são processadas, logo é possível navegar pelo documento em qualquer ordem.
Contudo, como utilização do objeto DOM requer a leitura de toda estrutura XML em uma árvore
na memória, pode acontecer um alto consumo de recursos da máquina.
Procure não deixar linhas em brancos, espaços ou caracteres especiais antes da inicialização do
objeto, sugestão: coloque-o na primeira linha do seu código.
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
• Indica que o documento não deverá conter espeço em branco.
$dom->formatOutput = true;
• Indica ao objetivo que a saída deverá ser formatada.
$array = $dom->createElement("array");
$root = $dom->createElement("telefone");
$contato = $dom->createElement("contato");
________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300
________________________________________________________________________________________
Administração Central
Cetec Capacitações
O método createElement(), cria a estrutura de nós iniciais do documento XML. Nessa caso estão
sendo criados os nós <array>,<telefone> e <contato>.
O método createElement(), desta vez é utilizando com um segundo parâmetro que indica qual o
conteúdo do nó criado.
Agora a parte que devemos tomar muito cuidado, pois refere-se ao relacionamento correto dos
nós da estrutura de árvore para que o documento XML fique devidamente organizado.
$contato->appendChild($apelido);
$contato->appendChild($nome);
$contato->appendChild($foneddd);
$root->appendChild($contato);
$array->appendChild($root);
$dom->appendChild($array);
________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300
________________________________________________________________________________________
Administração Central
Cetec Capacitações
$dom->save("contatos.xml");
Um outro recurso, no final do documento além de gravar o documento, o mesmo também será
aberto no navegador.
header("Content-Type: text/xml");
print $dom->saveXML();
header("Content-Type: text/xml");
print $dom->saveXML();
Documento: exemplo03.php
________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300
________________________________________________________________________________________
Administração Central
Cetec Capacitações
$link = "contatos.xml";
$xml = simplexml_load_file($link) -> telefone;
foreach($xml -> contato as $contato){
echo "<strong>Apelido:</strong> ".utf8_decode($contato -> apelido)."<br />";
echo "<strong>Nome Completo:</strong> ".utf8_decode($contato -> nome)."<br />";
echo "<strong>(ddd) Telefone:</strong> ".utf8_decode($contato -> foneddd)."<br />";
echo "<br />";
}
Documento: lendoxml_exemplo03.php
Agora usando a tabela para carregar os nós no objeto DOM. Não podemos esquecer que o nó
<contato> dever ser criado de acordo com cada registro da tabela e adicionado ao nó principal
<root> . Tudo isso deverá ser feito dentro da estrutura do while().
while($dados=mysqli_fetch_array($info)) {
$contato = $dom->createElement("contato");
$root->appendChild($contato);
}
Documento: exemplo04.php
i
https://loiane.com/2009/04/manipulando-arquivos-xml-em-java-com-a-api-dom-parte-i/
________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300