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
}