Ler XML
Pessoal,
Estou com um XML com a estrutura abaixo e preciso listar somente os dados que estão entre as tags <contato>.
O código PHP que estou utilizando é:
<?
//FUNÇÃO DA TAG INICIAL DO ARQUIVO XML
function FuncInicial($parser, $elemento) {
if($elemento == "AGENDA") {
echo "<table cellpading=0 cellspacing=0 border=0 width=50%>";
echo "<tr><td bgcolor=0099CC align=center>";
echo "<font face=Arial size=2 color=FFFFFF><b>Agenda em XML e PHP";
}
elseif($elemento == "CONTATO")
echo "<tr><td height=20>";
elseif($elemento == "NOME") {
echo "<tr><td bgcolor=#C1F0FF>";
echo "<font face=Arial size=2><b>";
}
elseif($elemento == "EMAIL") {
echo "<tr><td bgcolor=#DDF7FF>";
echo "<font face=Arial size=2>";
}
elseif($elemento == "CIDADE") {
echo "<tr><td bgcolor=#DDF7FF>";
echo "<font face=Arial size=2>";
}
}//FECHA FUNCTION FUNCINICIAL
//FUNÇÃO PARA EXIBIR OS DADOS DO DOCUMENTO XML
function FuncDados($parser, $dados) {
echo $dados;
}//FECHA FUNCTION FUNCINICIAL
//FUNÇÃO DA TAG INICIAL DO DOCUEMENTO XML
function FuncFinal($parser, $elemento) {
if($elemento == "AGENDA")
echo "</b></font></td</tr></table>";
elseif($elemento == "CONTATO")
echo "</td></tr>";
elseif($elemento == "NOME")
echo "</b></font></td></tr>";
elseif($elemento == "EMAIL")
echo "</font></td></tr>";
elseif($elemento == "CIDADE")
echo "</font></td></tr>";
}//FECHA FUNCTION FUNCFINAL
//CRIA O PARSER XML
$parser = xml_parser_create();
//DEFINE AS FUNÇÕES
xml_set_element_handler($parser, "FuncInicial", "FuncFinal");
xml_set_character_data_handler($parser, "FuncDados");
//ABRE O ARQUIVO XML PARA LEITURA
$ponteiro = fopen("dados.xml", "r");
//INICIA A ANÁLISE DO DOCUMENTO XML
while($dados = fread($ponteiro, 4096)) {
//INICIA A ANÁLISE DO DOCUMENTO XML
xml_parse($parser, $dados);
}//FECHA WHILE
//LIBERA A MEMÓRIA USADA PELO PARSER
xml_parser_free($parser);
?>
Código XML:
<?xml version="1.0"?>
<agenda>
<contato>
<nome> Julio César Martini </nome>
<email> baphp@imasters.com.br </email>
<cidade> Araras/SP </cidade>
</contato>
<contato>
<nome> Fulano de Tal </nome>
<email> fulanodetal@imasters.com.br </email>
<cidade> Araras/SP </cidade>
</contato>
<contato>
<nome> Ciclano de Tal </nome>
<email> ciclano@imasters.com.br </email>
<cidade> Sao Paulo/SP </cidade>
</contato>
<endereco>
<rua> Rua Silva Teste </rua>
<numero> 15 </numero>
<bairro> Teste </bairro>
<cep> 20151010 </cep>
</endereco>
<endereco>
<rua> Rua Pereira Teste </rua>
<numero> 57 </numero>
<bairro> Testando </bairro>
<cep> 30264151 </cep>
</endereco>
</agenda>
Aguardo ajuda e desde já agradeço.
Discussão (1)
Carregando comentários...