En la vida de todo webmáster, llega un día en el que has de emprender tareas imposibles. Por ejemplo, ésta: procesar un documento XML con PHP y obtener unos datos en concreto.
Es terreno pantanoso, porque es todo experimental aún (es decir, varía entre versiones sin retrocompatibilidad) y si no tienes algo de experiencia te pierdes. Yo en ASP no tenía muchos problemas, pero cuando lo intenté hacer en PHP me tragaron las arenas movedizas y ahí lo dejé.
Hoy Patoroco me pidió que le echara una mano y pensé que era un buen momento para volver a intentarlo. Al final salió algo decente. Trabajamos con el XML de las estadísticas del Azureus y queríamos obtener los títulos de las descargas en curso. El código es este:
<?php // Ruta al archivo $xml = 'http://ackbar.f2o.org/stats.xml'; // Creamos el objeto DOM $xmldoc = domxml_open_file($xml); // Creamos un contexto en este documento para la consulta XPath $xpctx = $xmldoc->xpath_new_context(); // Ejecutamos la consulta XPath en el contexto creado y recogemos el resultado $result = xpath_eval($xpctx, '/STATS/DOWNLOADS/DOWNLOAD/TORRENT/NAME'); foreach ($result->nodeset as $nodo) { // Recorremos el array volcando el contenido (texto) de los nodos echo '<p>'; echo $nodo->get_content(); echo '</p>'; } ?>
Patoroco lo ha convertido en una bonita y práctica función a la que le pasas la ruta XPath. Para el que no domine mucho este lenguaje, en W3Schools hay un tutorial muy majo.
La verdad es que es un script muy práctico y cargado de posibilidades. Seguro que en Ted encuentro cómo aprovecharlo.
Podes interaxir con esta entrada de moitas formas: con pingbacks, con webmentions ou simplemente respondendo a través do Fediverso, por exemplo visitándela en Mastodon.