Contenido

¿Como estar informado del mundial?

14 jun

+ 3

Bueno, vamos a montar un sistema RSS con el cual poder sacar información de los últimos partidos del mundial en tiempo real. Esto más que nada es una practica de programación para demostrarme que puedo usar XSL desde PHP obteniendo un XML distinto.

Lo primero que necesitamos es un sitio de donde obtener la información, he buscado y no he encontrado nada sobre el tema solo Google, que en su página de inicio te permite añardir información de la copa del mundo como complemento. Indagando un poco, no mucho, encontré la ruta que usa para obtener un XML con los datos del mundial en tiempo real.

Esta dirección nos devuelve un XML bien formado con toda la información de los partidos por jugar o que se estan jugando.

Esto esta muy bien, pero aun no es un RSS (o RDF en nuestro caso) válido, y ¿como podemos montar esto? Para ello necesitamos que nuestro servidor PHP tenga instalado Sablotron, una librería para trabajar con XSLT desde PHP. Con un phpinfo() podemos ver si disponemos de ella.

Bueno, si hemos llegado a esta línea es por que probablemente tenemos Sablotron y podemos seguir.

Ahora vamos a utilizar una XSL para transformar la salida del XML a un RDF válido y poder agregarlo desde nuestro lector de feeds, consiguiendo que nos mantengan informados de los goles de nuestro equipo.

Para ello necesitaremos generar una XSL como esta.

Una vez hecho esto nos descargamos este zip que incluye una clase con la cual podremos unir el XML que google nos sirve y la XSL que hemos creado.

Tambien se incluye un fichero llamado index.php, en el que se le indica de donde coger el XML y el XSL para conseguir nuestro objetivo. Indicando que el resultado de dicha fusión, se trata de un fichero XML con la función header() de PHP conseguimos que pase por un RDF cualquiera.

<?php include("class.xslt.php"); header('Content-Type: text/xml'); $t = new XSLTransformer("http://www.google.es/ig/worldcupdata?". "section=live&hl=es&gl=es&tz=-120". "&rand=0.9082258602486447", 'rss.xsl'); echo $t->getOutput(); $t->destructXSLTansform(); ?>

Esto solo pretende ser educativo y no me hago responsable del mal uso que se pueda hacer con esta información.

La clase utilizada es una modificación de XSLTransformer

[Ver resultado

Actualizo

Por un raro motivo en netvibes no se ve muy fino :D FeedReader funciona perfectamente.
Funciona perfectamente en NetVibes, PageFlakes, Google Reader, BlogLines…

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.