XML, JSON e RDF

Grazie alle funzioni native, l’elaborazione di XML (eXtensible Markup Language) e JSON (JavaScript Object Notation) non costituisce più un problema. Anche se JSON in fondo è pensato per applicazioni Ajax , preferisco il formato anche in PHP quando voglio e posso evitare l’overhead dei dati XML.

Il Geonames-Webservices è un buon punto di partenza per qualche esempio perché presenta le funzioni del servizio che sono in grado di fornire i dati in almeno questi due formati. In più le funzioni di Geonames sono probabilmente molto interessanti per tanti Webmaster. Chi è interessato a richieste diverse dovrebbe consultare la documentazione del Webservice.

Per una richiesta generica con la query london basta l’URL seguente:

http://ws.geonames.org/search?q=london&maxRows=10

Il parametro maxRows controlla il numero dei risultati. Per definizione il risultato viene fornito in XML. Se si vuole il formato JSON si deve aggiungere il parametro type:

http://ws.geonames.org/search?q=london&maxRows=10&type=json

Dando un’occhiata più specifica alla lista dei Geonames-Services si scopre che si può richiedere anche il formato RDF (Resource Description Framework). Chiunque voglia entrare nel mondo del Semantic Web dovrebbe dedicarsi a prendere confidenza con questo formato. Se non avete ancora idea di che cosa si tratti, un buon punto di partenza è il sito del W3C.

Le funzioni ovvero i metodi SimpleXML di PHP falliscono con RDF. Anche se il formato viene chiamato RDF/XML la classe SimpleXML presenta problemi con i due punti negli XML-Entities. Le soluzioni però ci sono. Personalmente preferisco Arc. Il pacchetto va semplicemente caricato e messo a disposizione sul server.

Come elaborare con PHP tutti e tre i formati descritti, è illustrato dal code seguente:

<?php
$url = 'http://ws.geonames.org/search?q=london&maxRows=10&username=USERNAME';
$xml = simplexml_load_file( $url );
echo "Ausgabe des SimpleXML-Objects:\n";
print_r( $xml );
$json = file_get_contents( $url . '&type=json' );
$arr = json_decode( $json );
echo "Ausgabe der JSON-Daten als Array:\n";
print_r( $arr );
/**
* https://github.com/semsol/arc2.git
*/
include_once 'arc2/ARC2.php';
$parser = ARC2::getRDFParser();
$parser->parse( $url . '&type=rdf' );
$triples = $parser->getTriples();
echo "Ausgabe der RDF-Daten als Array:\n";
print_r( $triples );

Chi è interessato all’output delle richieste può vedere anche lo script in azione.

Have fun!

Autore: realloc

Traveller, Fitness Fanatic, Triathlete, Wannabe Musician, WordPress Enthusiast & Software Developer | Born in Germany. Reborn in Italy.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)