Ler Atributos XML com PHP

Ler atributos  XML com PHP

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 />" ;
 }
 }
}
?>

 

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

Download: XMLAttr
Parser : PHP Simple Large XML Parser

Voltei!!!

Comments

  1. Responder

  2. Responder

    • Responder

  3. By Gilson

    Responder

  4. Responder

  5. By chicão

    Responder

  6. 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

%d blogueiros gostam disto: