Ler Atributos XML com PHP

Publicado: janeiro 27, 2012 em PHP, XML

Ler atributos de XML usando a classe PHP Simple Large XML Parser 

Olá, neste exemplo vamos utilizar a classe Simple Large XML Parser para ler/exibir  XML contendo atributos.

O arquivo XML é um exemplo de playlist, contendo título, album e autor, sendo que título possui os atributos: ID, Duracao e MP3 (este último seria o caminho do arquivo)

<?xml version="1.0" encoding="iso-8859-1"?>
<playlist>
 <faixa>
 <titulo id="55" duracao="04:08" mp3="http://site.com/mp3/atari/01.mp3">Revolution Action</titulo>
 <album>60 Second Wipe Out</album>
 <autor>Atari Teenage Riot</autor>
 </faixa>
 <faixa>
 <titulo id="50" duracao="03:55" mp3="http://site.com/mp3/atari/03.mp3">Speed</titulo>
 <album>60 Second Wipe Out</album>
 <autor>Atari Teenage Riot</autor>
 </faixa>
</playlist>

 


<?php
// incluindo a classe
require_once('SimpleLargeXMLParser.class.php');
// seta o caminho do XML
$xml = dirname(__FILE__)."/playlist.xml";
// cria objeto
$parser = new SimpleLargeXMLParser();
// carrega XML
$parser->loadXML($xml);
// seta no parser o nó a ser listado/percorrido
$playlist = $parser->parseXML("//playlist/faixa", true);
// percorre o XML
foreach($playlist as $faixas)
{
 //percorre o nó faixa
 foreach($faixas as $faixa => $titulos)
 {
 if(isset($titulos[0]['value']['titulo']))
 {
 // armazena no objeto titulo o nó atual
 $titulo = (object) $titulos[0]['value']['titulo'];
 // adiciona o nó album no objeto titulo
 $titulo->album = $faixas['album'][0]['value']['album']['value'];
 // adiciona o nó autor no objeto titulo
 $titulo->autor = $faixas['autor'][0]['value']['autor']['value'];
 // print o valor do nó titulo
 echo $titulo->value
 . "<br />"
 // printa o atributo id do titulo
 . $titulo->attributes['id']
 . "<br />"
 // printa o atributo duracao
 . $titulo->attributes['duracao']
 . "<br />"
 // printa o atributo mp3
 . $titulo->attributes['mp3']
 . "<br />"
 // printa o nó album
 . $titulo->album
 . "<br />"
 // printa o nó autor
 . $titulo->autor
 . "<br /><br />" ;
 }
 }
}
?>

Output:
print result

É isso, é bom dar um print_r($playlist) para ver a estrutura criada pelo Parser!

Download: XMLAttr
Parser : PHP Simple Large XML Parser

Voltei!!!

Comentários
  1. Putz kra, sofri no mes passada pra aprender a fazer isso juntando alguns tutos teus ashuhsuash
    mas resumido assim eu consigo ver como eu fazia parecer dificil um negócio tão simples, heheh

    espero novos tutos em breve o/

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s