Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo transformar el formato de un flujo RSS, mediante DOM, para poder usarlo libremente con PHP

Imago voragine.net

RSS o Really Simple Syndication es una simplificación de XML. Mediante DOM (Document Object Model) podemos transformar cualquier flujo XML en una matriz multidimensional con la que podremos operar fácilmente en PHP.

Tomemos como ejemplo un XML de los últimos tweets de un usuario de Twitter, @skotperez en este caso. Podemos extraer esta información gracias a la API de Twitter.

https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=skotperez

Una vez que tenemos el feed lo podemos manipular con DOM y almacenar el resultado en una variable, $arrFeeds en este caso:

$feed_url = "https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=skotperez";
$doc = new DOMDocument();
$doc->load($feed_url);
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
  $itemRSS = array (
    'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
    'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
    'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
    'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
  );
  array_push($arrFeeds, $itemRSS);
}

Luego podemos hacer correr un loop a lo largo de los elementos de la matriz para obtener la información que queramos:

foreach ( $arrFeeds as $tw ) {
  echo $tw['date'];
  echo "<br />";
  echo $tw['desc'];
  echo "<br />";
}

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks