Hier ein einfaches Beispiel, wie aus folgender XML-Datei über das Attribut ‚id‘ ein Datensatz gelesen, und als Antwort ein JSON-Objekt zurück geliefert wird.
<?xml version="1.0" encoding="utf-8"?> <articles> <article id="1"> <artid>A1001</artid> <descr>Description here</descr> <price>12.89</price> </article> <article id="2"> <artid>B2002</artid> <descr>Description here</descr> <price>8.49</price> </article> </articles>
Per XPATH werden alle Knoten ‚article‘ mit dem Attribut id = 2 selektiert. (Sollte in diesem Beispiel eindeutig sein, d.h. der Primärschlüssel.)
<?php header("Content-type: application/json"); echo "{"; if (isset($_GET["id"])) { $xml = simplexml_load_file("data.xml"); foreach($xml->xpath("//article[" . $_GET["id"] . "]") as $item) { echo "\"artid\":\"" . $item->artid . "\","; echo "\"descr\":\"" . htmlspecialchars($item->descr) . "\","; echo "\"price\":" . $item->price . ""; } } else { echo "\"error\":\"no data\""; } echo "}"; ?>
Die Antwort zur ID 2 ist ein JSON-Objekt:
{ "artid": "B2002", "descr": "Description here", "price": 8.49 }