Querdenkender Webworker mit WordPress-Affinität

XML, JSON und RDF

XML (eXtensible Markup Language) und JSON (JavaScript Object Notation) zu verarbeiten, ist dank der Funktionen, die PHP bereits zur Verfügung stellt, absolut kein Problem mehr. Wenn auch JSON ursprünglich wohl vor allem für Ajax-Anwendungen gedacht war, bevorzuge ich selbst das Format auch in PHP-Anwendungen, wenn ich den Overhead der XML-Daten vermeiden kann und möchte.

Die Geonames-Webservices bieten einen hervorragenden Startpunkt, weil beispielsweise deren Suche mindestens beide zuvor genannten Formate liefern kann. Außerdem sind die Daten vermutlich für die Projekte vieler Webmaster sehr interessant. Meine Beispiele sind eher auf die Demonstration der Daten ausgerichtet. Wer sich für speziellere Anfragen interessiert, sollte sich die Dokumentation der Webservices genauer ansehen.

Um eine ganz allgemeine Abfrage nach dem Wort london zu starten, reicht folgender URL:

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

Der Parameter maxRows steuert die Anzahl der Ergebnisse. Standardmäßig werden die Daten in XML zurückgeliefert.  Möchte man die Daten im JSON-Format erhalten, fügt man einfach den Parameter type hinzu:

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

Wer sich die Liste der Geonames-Services genauer angesehen hat, wird vielleicht bemerkt haben, dass die Resultate der Suche außerdem in RDF (Resource Description Framework) geliefert werden können. Wer in die Welt des Semantischen Webs eintauchen will, sollte sich sowieso näher mit diesem Format beschäftigen. Als Startpunkt möchte ich DBpedia empfehlen, wenn man noch keine Idee dazu hat.

Die SimpleXML-Funktionen von PHP werden bei RDF scheitern. Auch wenn das Format RDF/XML genannt wird, hat die SimpleXML-Klasse Probleme mit den Doppelpunkten in den XML-Entities. Allerdings gibt es auch für dieses Problem bereits verschiedene Lösungen. Die von mir bevorzugte Lösung ist Arc. Das Paket muss nur geladen und auf den Server verfügbar gemacht werden. Wie alle 3 beschriebenen Format nun mit PHP benutzt werden können, veranschaulicht (hoffentlich) folgender Code:

<!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 404 (Not Found)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:[email protected] screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:[email protected] only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) [email protected] only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
 </style>
  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
  <p><b>404.</b> <ins>That’s an error.</ins>
  <p>The requested URL <code>/svn/trunk/examples/xml-json-rdf.php</code> was not found on this server.  <ins>That’s all we know.</ins>

Wer die Ausgabe der Abfrage sehen will, kann sich das Script auch in Aktion ansehen.

Have fun!

Das könnte Dich auch interessieren:

Deine Meinung ist uns wichtig

*