Olá! Sexta Feira, 10 de Fevereiro de 2012.



Dicas CódigoFonte.net
Segunda Feira, 18 de Abril de 2005

Formatando documentos XML com Expat + PHP

Formatando documentos XML com Expat + PHP

Para se formatar um documento XML utilizando o método Expat existem basicamente 6 passos:

- definir uma função que será chamada quando uma tag inicial for encontrada (no meu exemplo seria a função "inicioElemento")

- definir uma função que sera chamada quando uma tag final for encontrada (no meu exemplo seria a função "fimElemento")

- definir uma função que será executada quando dados de caractere forem encontrados (no meu exemplo seria a função "dadosElemento")

- registrar as funções de início e fim de tag com a função "xml_set_element_handler"

- registrar a função de tratamento de caractere com a função "xml_set_character_data_handler"

- criar o parser utilizando a função "xml_parser_create"

Depois que os passos anteriores tenham sido realizados basta passar o documento XML ao nosso parser através da função "xml_parse".

noticias.php
<?php 
function inicioElemento($parser,$nomeTag,$atributos){ 
  global $tagAtual; 
  $tagAtual = $nomeTag; 
} 
function fimElemento($parser,$nomeTag){ 
  global $noticiaAtual; 
  if ($nomeTag == "NOTICIA"){ 
    print "<TR><TD colspan=2>"; 
    print trim($noticiaAtual['TITULO']) . "</TD></TR>"; 
    print "<TR><TD>" . trim($noticiaAtual['DATA']); 
    print "</TD><TD>" .trim($noticiaAtual['AUTOR']) . "</TD></TR>"; 
    print "<TR><TD colspan=2>"; 
    print nl2br(trim($noticiaAtual['TEXTO'])) . "</TD></TR>"; 
    $noticiaAtual = null; 
  } 
} 
function dadosElemento($parser,$dados){ 
  global $noticiaAtual,$tagAtual; 
  $noticiaAtual[$tagAtual] .= $dados; 
} 

$meuParser = xml_parser_create(); 

xml_set_element_handler($meuParser,"inicioElemento","fimElemento"); 
xml_set_character_data_handler($meuParser,"dadosElemento"); 
$meuArquivoXML = fopen("noticias.xml","r"); 

print "<TABLE border=1>"; 
while(!feof($meuArquivoXML)){ 
   $meuDado = fread($meuArquivoXML,1024); 
   if (!xml_parse($meuParser,$meuDado)){ 
      $textoErro = xml_error_string(xml_error_code($meuParser)); 
      $linhaErro = xml_get_current_line_number($meuParser); 
      DIE($linhaErro . " : " . $textoErro); 
   } 
} 
print "</TABLE>"; 

fclose($meuArquivoXML); 

?> 



noticias.xml
<?xml version="1.0"?> 
<JORNAL> 
<NOTICIA> 
<TITULO>Como pequeno, Cruzeiro cai no Mineirao</TITULO> 
<AUTOR>Equipe de Reportagem do jornal Estado de Minas</AUTOR> 
<DATA>04/04/2002</DATA> 
<TEXTO>O Cruzeiro jogou como um time pequeno em pleno Mineirao e pagou 
pela covardia. Diante de 33.251 pagantes o lider da Sul-Minas 
perdeu por 3 a 2 para o Corinthinas e foi eliminado nas oitavas 
de final da Copa do Brasil. Iludido pela vantagem de poder empatar 
por 0 a 0 e 1 a 1 , o time da Toca da Raposa deixou-se dominar 
,foi apatico e chegou a estar perdendo por 3 a 0 merecidamente.</TEXTO> 
</NOTICIA> 
<NOTICIA> 
<TITULO>Cruzeiro alcanca objetivos</TITULO> 
<AUTOR>Equipe de Reportagem do jornal Estado de Minas</AUTOR> 
<DATA>08/04/2002</DATA> 
<TEXTO>Ja classificado em primeiro lugar para as semifinais 
da Copa Sul-Minas,o Cruzeiro derrotou o Mamore ontem por 2 a 1, no Estadio Zama Maciel, em Patos de Minas, com dois objetivos claros: tentar um rendimento superior, como no inicio da temporada, com a volta do armador Vander ausente da equipe ha mais 
de um mes, e dar chances para Cris mostrar seu futebol e ficar proximo novamente de uma convocacao para a Selecao Brasileira.</TEXTO> 
</NOTICIA> 
</JORNAL> 


Por hoje é só.

Até mais pessoal.

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:






CodigoFonte.net » CodigoFonte.eti.br » Compre De Tudo » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010

Procurando Notebooks, Câmeras Digitais, iPhones?

CompreDeTudo.com