{"id":133,"date":"2010-10-06T01:03:35","date_gmt":"2010-10-05T23:03:35","guid":{"rendered":"http:\/\/unckel.com\/blog\/?p=133"},"modified":"2019-12-07T22:03:15","modified_gmt":"2019-12-07T21:03:15","slug":"xml-zu-json-umwandeln-mit-php","status":"publish","type":"post","link":"https:\/\/unckel.de\/blog\/xml-zu-json-umwandeln-mit-php\/","title":{"rendered":"XML zu JSON umwandeln mit PHP"},"content":{"rendered":"<p>Hier ein einfaches Beispiel, wie aus folgender XML-Datei \u00fcber das Attribut &#8218;id&#8216; ein Datensatz gelesen, und als Antwort ein JSON-Objekt zur\u00fcck geliefert wird.<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;articles&gt;\n&lt;article id=\"1\"&gt;\n  &lt;artid&gt;A1001&lt;\/artid&gt;\n  &lt;descr&gt;Description here&lt;\/descr&gt;\n  &lt;price&gt;12.89&lt;\/price&gt;\n&lt;\/article&gt;\n&lt;article id=\"2\"&gt;\n  &lt;artid&gt;B2002&lt;\/artid&gt;\n  &lt;descr&gt;Description here&lt;\/descr&gt;\n  &lt;price&gt;8.49&lt;\/price&gt;\n&lt;\/article&gt;\n&lt;\/articles&gt;<\/pre>\n<p>Per XPATH werden alle Knoten &#8218;article&#8216; mit dem Attribut id = 2 selektiert. (Sollte in diesem Beispiel eindeutig sein, d.h. der Prim\u00e4rschl\u00fcssel.)<\/p>\n<pre>&lt;?php\nheader(\"Content-type: application\/json\");\necho \"{\";\n\nif (isset($_GET[\"id\"])) {\n  \n  $xml = simplexml_load_file(\"data.xml\"); \n\t\n  foreach($xml-&gt;xpath(\"\/\/article[\" . $_GET[\"id\"] . \"]\") as $item) {\n    echo \"\\\"artid\\\":\\\"\" . $item-&gt;artid . \"\\\",\";\n    echo \"\\\"descr\\\":\\\"\" . htmlspecialchars($item-&gt;descr) . \"\\\",\";\n    echo \"\\\"price\\\":\"   . $item-&gt;price . \"\";\t\t\n  } \n}\nelse {\n  echo \"\\\"error\\\":\\\"no data\\\"\";\n}\n\necho \"}\";\n?&gt;<\/pre>\n<p>Die Antwort zur ID 2 ist ein JSON-Objekt:<\/p>\n<pre>{\n  \"artid\": \"B2002\",\n  \"descr\": \"Description here\",\n  \"price\":  8.49\t\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Hier ein einfaches Beispiel, wie aus folgender XML-Datei \u00fcber das Attribut &#8218;id&#8216; ein Datensatz gelesen, und als Antwort ein JSON-Objekt zur\u00fcck geliefert wird. &lt;?xml version=&#8220;1.0&#8243; encoding=&#8220;utf-8&#8243;?&gt; &lt;articles&gt; &lt;article id=&#8220;1&#8243;&gt; &lt;artid&gt;A1001&lt;\/artid&gt; &lt;descr&gt;Description here&lt;\/descr&gt; &lt;price&gt;12.89&lt;\/price&gt; &lt;\/article&gt; &lt;article id=&#8220;2&#8243;&gt; &lt;artid&gt;B2002&lt;\/artid&gt; &lt;descr&gt;Description here&lt;\/descr&gt; &lt;price&gt;8.49&lt;\/price&gt; &lt;\/article&gt; &lt;\/articles&gt; Per XPATH werden alle Knoten &#8218;article&#8216; mit dem Attribut id = 2 selektiert. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[],"class_list":["post-133","post","type-post","status-publish","format-standard","hentry","category-webdesign"],"_links":{"self":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts\/133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/comments?post=133"}],"version-history":[{"count":1,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts\/133\/revisions"}],"predecessor-version":[{"id":783,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts\/133\/revisions\/783"}],"wp:attachment":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/media?parent=133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/categories?post=133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/tags?post=133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}