Ler XML com PHP

Ler XML com PHP

Veremos como ler um arquivo XML utilizando o método SimpleXML no PHP5, depois que escrevi como criar um arquivo XML com PHP nada mais interessante que saber como ler o arquivo.

Começaremos criando um arquivo XML bem simples, escreva o código abaixo e salve como:

livros.xml

<?xml version=”1.0″ encoding=”iso-8859-1″?>
<livros>
<livro>
<cod>01</cod>
<titulo>PHP para iniciantes</titulo>
<descricao>Desenvolvendo Aplicações web</descricao>
<autor>Manuel da Silva</autor>
<paginas>200</paginas>
<preco>5.00</preco>
</livro>
<livro>
<cod>02</cod>
<titulo>XML</titulo>
<descricao>Usando XML com PHP </descricao>
<autor>José das Couves</autor>
<paginas>100</paginas>
<preco>15.00</preco>
</livro>
</livros> 

Agora que já temos o XML vamos criar o arquivo PHP, salve-o com o nome que quiser.

index.php

<?
#define o encoding do cabeçalho para utf-8
@header(‘Content-Type: text/html; charset=utf-8’);
#carrega o arquivo XML e retornando um Objeto
$xml = simplexml_load_file(“livros.xml”);
# se o xml for um link e nao um arquivo como livros.xml, troque -o pelo link ex.
# $xml = simplexml_load_file(“http://endereco/link/mesmoQueNaoTenhaExtensaoXML/“);

#para cada nó LIVRO  atribui à variavel $livro (obj simplexml)
foreach($xml->livro as $livro)
{
 echo $livro->cod;
#usando o utf8_decode para exibir com acentos
 echo $livro->titulo;
echo $livro->autor;
echo $livro->descricao;
echo $livro->preco;
echo “<br>”;
}
?>

Muito simples! O nome do método não é em vão! 😉

Bem, agora basta você formatar a saida dos dados, utilize tags html formatadas com CSS, um exemplo pode ser como abaixo:

echo “<p><b>Título:</b> ” .$livro->titulo . “</p>”;

Como está no comentário no código, a função simplexml_load_file carrega um arquivo XML retornando seu conteúdo em um Objeto, se quiser ver o detalhes do objeto criado pela função e atribuído à variável $xml, utilize a função do PHP print_r . O resultado será como mostrado abaixo:

O comando print_r($xml) resultará em:

SimpleXMLElement Object
(
    [livro] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [cod] => 01
                    [titulo] => PHP para iniciantes
                    [descricao] => Desenvolvendo Aplicações web
                    [autor] => Manuel da Silva
                    [paginas] => 200
                    [preco] => 5.00
                )

            [1] => SimpleXMLElement Object
                (
                    [cod] => 02
                    [titulo] => XML
                    [descricao] => Usando XML com PHP
                    [autor] => José das Couves
                    [paginas] => 100
                    [preco] => 15.00
                )

            [2] => SimpleXMLElement Object
                (
                    [cod] => 03
                    [titulo] => Javascript
                    [descricao] => O Poder do javascript
                    [autor] => Billy Borny
                    [paginas] => 80
                    [preco] => 9.90
                )

        )

)

Links:

Documentação do SimpleXML:  SimpleXML

Abraços e até o próximo post.  😉

Comments

  1. By simei

    Responder

  2. Responder

  3. By Guilherme

    Responder

    • Responder

  4. By Allan

    Responder

  5. By Andrei

    Responder

  6. By Andrei

    Responder

    • Responder

  7. By Andrei

    Responder

  8. By luiz tarabal

    Responder

  9. Responder

  10. Responder

  11. By Fernando

    Responder

  12. By Eric Malzone

    Responder

  13. By Alcir

    Responder

  14. Responder

  15. By Mario

    Responder

  16. Responder

    • Responder

  17. By Augusto

    Responder

  18. Responder

  19. Responder

  20. By Thiago

    Responder

  21. By Carlos

    Responder

    • Responder

  22. By Carlos

    Responder

    • Responder

      • By Carlos

        Responder

        • Responder

  23. By Carlos

    Responder

  24. By Carlos

    Responder

  25. By victor matuk

    Responder

  26. Responder

    • Responder

  27. By Vasco

    Responder

    • Responder

      • By Vasco

        Responder

        • Responder

    • By Daniel

      Responder

      • Responder

  28. By Saulo

    Responder

    • Responder

  29. By Gisele

    Responder

  30. By AndreLC

    Responder

    • Responder

  31. By Carlos Cesar Nardo Junior

    Responder

  32. By Felipe

    Responder

    • Responder

      • By Felipe

        Responder

  33. By rosa

    Responder

  34. By rosa

    Responder

    • Responder

      • By Rosa

        Responder

        • Responder

  35. By rosa

    Responder

    • Responder

      • By Rosa

        Responder

  36. Responder

    • Responder

  37. Responder

    • Responder

  38. By Rosa

    Responder

    • Responder

  39. Responder

    • Responder

  40. By Flavio

    Responder

    • Responder

  41. By Rodolfo

    Responder

  42. By Gustavo Voll

    Responder

    • Responder

      • By Gustavo Voll

        Responder

        • Responder

  43. By ygor

    Responder

    • Responder

  44. Responder

    • Responder

  45. Responder

  46. By Ricardo

    Responder

    • Responder

      • By Ricardo

        Responder

  47. Responder

    • Responder

  48. By patrick

    Responder

    • Responder

  49. By fabio

    Responder

  50. By Eduardo

    Responder

  51. By Gilbert Eterovisk

    Responder

  52. By Fernando Melo

    Responder

    • Responder

  53. Responder

    • Responder

  54. By mizifih

    Responder

  55. By Fabiano

    Responder

  56. By Adriano

    Responder

    • Responder

      • By Adriano

        Responder

  57. Responder

    • Responder

  58. By Felipe

    Responder

    • By Rafael Clares

      Responder

  59. By EnigmA

    Responder

  60. Responder

  61. Responder

    • Responder

      • Responder

  62. Responder

    • Responder

      • Responder

  63. By Noel Santos

    Responder

    • Responder

  64. By Luiz

    Responder

  65. Responder

  66. By Jonas Felipe

    Responder

  67. By rodrigo

    Responder

Perguntas duplicadas ou cujo a resposta esteja nos comentários serão ignoradas.
Comentários com códigos serão ignorados(para isso, use o pastebin.com e informe aqui o link).
Faça sua pergunta e "aguarde" ser aprovada para aparecer no blog.
Aguarde sua resposta, ela não é em tempo real, tenha paciência!

Deixe seu comentário