sexta-feira, 2 de março de 2012

XML

XML - Extensible Markup Language

Segundo a Wikipédia "O XML é um formato para a criação de documentos com dados organizados de forma hierárquica...".
Ainda segundo a Wikipédia "Seu propósito principal é a facilidade de compartilhamento de informações através da internet."
Em última análise são ficheiros de texto que incluem tags que descrevem a estrutura dos dados a par da informação, ainda que não inclua o tipo de dados de cada campo.
As RSS feeds são uma das utilizações do formato XML.
Em relação às RSS a Wikipédia diz "Os feeds RSS oferecem conteúdo Web ou resumos de conteúdo juntamente com os links para as versões completas deste conteúdo e outros metadados. Esta informação é entregue como um arquivo XML chamado "RSS feed", "webfeed", "Atom" ou ainda canal RSS."
Com estas informações podemos construir um leitor de feeds RSS, para este exemplo vou utilizar PHP para ler uma feed RSS a partir do site da PCMagazine.



Começamos por criar a estrutura do código PHP:


<!DOCTYPE html>
<html>
<head>
<title>Leitor de Feeds RSS</title>
</head>
<body>
<h1>PC Magazine</h1>
<ul>
                           <!--Inserir aqui o código-->
</ul>

</body>
</html>

Agora na parte <body> do documento criamos uma lista com os artigos. Primeiro carregamos o ficheiro XML

<?PHP
$dom = simplexml_load_file("http://rssnewsapps.ziffdavis.com/pcmag.xml");

De seguida fazemos um ciclo que percorre os items (artigos) publicados na feed:

foreach ($dom->channel->item as $item)
{
print "<li>";
print "<a href='{$item->link}'>";
print $item->title;
print "</a>";
print "</li>";
}
?>
Para cada artigo mostramos o titulo e inserimos um link para o texto no site da pcmagazine.
E pronto o código no final fica assim:


<!DOCTYPE html>
<html>
<head>
<title>Leitor de Feeds RSS</title>
</head>
<body>
<h1>PC Magazine</h1>
<ul>
<?PHP
$dom = simplexml_load_file("http://rssnewsapps.ziffdavis.com/pcmag.xml");
foreach ($dom->channel->item as $item)
{
print "<li>";
print "<a href='{$item->link}'>";
print $item->title;
print "</a>";
print "</li>";
}
?>
</ul>
</body>
</html>


Simples como só o PHP sabe ser.

Sem comentários:

Enviar um comentário