JSON es un formato de datos de intercambio de Javascript que el auge de AJAX ha hecho muy popular. En javascript es mucho más cómodo trabajar con JSON frente a XML ya que podemos analizarlo rápidamente utilizando eval().
Cuando queremos trabajar con API´s como las de Amazon, Technorati, del.icio.us o Ficrk vía REST nos encontramos con que todas ellas devuelven los datos en XML. Gracias a PHP5 y utilizando sus extensiones DOM y XSL podemos transformar un documento XML en JSON de forma muy sencilla.
Veamos un ejemplo de cómo hacer esto con una consulta a la API de Technorati:
En primer lugar vamos a componer la URL con la que haremos nuestra consulta:
$technoratiApiKey = "introduceTuAPIdeTechnorati";
$url = "http://api.technorati.com/tag";
$tag = "usabilidad";
$request=$url."?key=".$technoratiApiKey."&tag=".urlencode($tag);
Y ahora creamos un nuevo objeto DOM y cargamos nuestro el fichero XML que nos devuelve la consulta:
$inputdom = new DomDocument();
$inputdom->load($request);
Para transformar los datos utilizaremos un xml2json.xsl, un fichero XSLT que tiene las instrucciones para transformar XML en JSON. Lo cargamos en un nuevo objeto DOM:
$xslt = "xml2json.xsl";
$xsl = new DomDocument();
$xsl->load($xslt);
¿Qué nos falta? pues: crear un procesador de XSLT en PHP, cargar nuestra xslt, realizar la transformación y generar el documento:
$proc = new XsltProcessor();
$xsl = $proc->importStylesheet($xsl);
$newdom = $proc->transformToDoc($inputdom);
print $newdom->saveHTML();
Próximamente veremos cómo utilizar esta técnica para procesar información de diversas API´s REST mediante AJAX.
Hola, excelente Web, útil y con muchos recursos.
No se si es mucho pedir si me puedes ayudar con lo siguiente: para formar un PDF, ¿cómo hacerlo extrayendo la data, es decir, texto y la imagen de un artÃculo, que están almacenados en la base de datos MySQL?
Lo he intentado con la clase class.pdf2text.php, pero no me resulta. Un ejemplo de cómo se hace, me ayudará mucho.
Gracias, bye
Hola Rikochett, lo que tu necesitas es esta librerÃa:
http://www.fpdf.org/
Saludos