PHP lendo arquivo XML
Quem não usa xml ainda, deveria começar a utilizar, ao menos o básico, o xml para mim facilita muito a vida no momento da interação entre aplicativos.
Enquanto escrevo esse artigo, estou montando uma comunicação entre Delphi e php, mas o mesmo pode ser lido por um Java, flash ou html.
Buscando na internet sempre achei algumas funções legais, porém, nenhuma atendia com agilidade minha necessidade.
Em 2007 achei em um fórum gringo uma função interessante, fiz alguns ajustes e a deixei redondinha, não tive tempo de transformar ela em classe, mas você consegue ler qualquer xml e converter ele para array.
Vou mostrar um exemplo básico, que já resolve N problemas.
Arquivo xml:
<?xml version="1.0" encoding="ISO-8859-1" ?><root><agenda><nome lingua="pt"><![CDATA[Raphael Jordany]]></nome><email><![CDATA[raphljordany@hotmail.com]]></email><tel><![CDATA[10552020]]></tel></agenda><agenda><nome lingua="pt"><![CDATA[Jordany Raphael]]></nome><email><![CDATA[raphljordany@hotmail.com]]></email><tel><![CDATA[55220011]]></tel></agenda><agenda><nome lingua="fr"><![CDATA[Fulando dos santos]]></nome><email><![CDATA[raphljordany@hotmail.com]]></email><tel><![CDATA[ 321441235]]></tel></agenda></root>
Arquivo php:
1: <?2: include 'Rjxml.php';3:4: $contents = file_get_contents('exemplo.xml'); // ler o arquivo5: $xmllistar = $contents; // setando a variavel que vai conter o xml6: $result = Rjxml($xmllistar); // chamando a função que vai transformar o xml para um array7: //for de exemplo....8: for($a=0;$a<count($result['root']['agenda']);$a++){9: echo 'linha:' . $a . '::'. $result['root']['agenda'][$a]['nome']['value'] . ' ----- ' . $result['root']['agenda'][$a]['email']['value'] . ' - - - ' . $result['root']['agenda'][$a]['nome']['attr']['lingua'] . '<br>';10: };11:12: ?>
Você consegue ler tanto as tags ou atributos com facilidade.
Link para baixar a função com os arquivos citados acima: