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
}