PHP: lendo e tratando informações vindas de um arquivo XML

Não sou muito ativo no php, sou mais um web-designer, mas como sou um desenvolvedor web e trabalho sozinho nesta área, tenho que me virar procurando certos problemas na web (google).

Estes dias estava com dificuldade em ler um XML, de tanto procurar na web encontrei este blog:

http://www.vedovelli.com.br/?p=83

Resolvi compartilhar para ajudar quem tem ou terá o mesmo problema que eu tive. Modifiquei certas coisas, comentei e postei aqui, espero que tenham facilidade em entender o Post!, qualquer duvida comentem.

[code language=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<root>
<bandas>
<nome>Asian Dub Foundation</nome>
<nome>REM</nome>
<nome>Everything But The Girl</nome>
</bandas>
</root>
[/code]

O xml é o mesmo do exemplo do blog que eu copiei.

Agora temos o php que lerá o XML acima

[code language=”php”]

<?php
$xml = simplexml_load_file("arquivo.xml"); // Pode ser http://www.algumdominio.com/services/arquivo.xml

for($i=0; $i < count($xml->bandas->nome); $i++) {
echo $xml->bandas->nome[$i]."<br />";
}
?>

[/code]

Para outro exemplo tenho o XML abaixo

[code language=”xml”]

<?xml version="1.0" encoding="UTF-8"?>
<root>
<bandas>
Gringas
<nome>Asian Dub Foundation</nome>
<nome>REM</nome>
<nome>Everything But The Girl</nome>
</bandas>

<bandas>
Da nossa Terra
<nome>Detonautas</nome>
<nome>CPM 22</nome>
<nome>Skank</nome>
</bandas>
</root>

[/code]

E o php que faz a leitura

[code language=”php”]

<?php
// lê o arquivo xml
$xml = simplexml_load_file("arquivo2.xml");

// le todos os filhos pricipais – no caso "bandas"
foreach($xml->children() as $child){
// imprime o texto interno
echo "<br /><br /><strong>".$child.":</strong> <br />";

// le todos os of filhos dos filhos pricipais – no caso "nome"
foreach($child as $asd){
// imprime o texto interno
echo "" . $asd . "<br />";
}
}

// foreach – enquanto tem dados ele lê
// pelo menos é isso que eu entendo
?>

[/code]

Neste segundo exemplo eu leio o XML, e para cada filho leio seus filhos. Assim tenho o filho “bandas” e seus filhos “nome”.

Os exemplos podem ser vistos aqui.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *