{"id":82,"date":"2007-10-09T13:31:48","date_gmt":"2007-10-09T11:31:48","guid":{"rendered":"http:\/\/www.hermione.de\/blog\/?p=82"},"modified":"2007-10-11T16:43:53","modified_gmt":"2007-10-11T14:43:53","slug":"responsexml-ajax","status":"publish","type":"post","link":"http:\/\/blog.hermione.de\/?p=82","title":{"rendered":"responseXML [AJAX]"},"content":{"rendered":"<p>Das XMLHttpRequest-Objekt besitzt neben der Eigenschaft <em>responseText<\/em> auch <em>responseXML<\/em> zur Abfrage des R\u00fcckgabewertes. Sofern der Server gueltiges XML liefert, ist responseXML ein XML-DOM-Objekt. Andernfalls enthaelt es den Wert null.<\/p>\n<p><!--more--><\/p>\n<p>Diese XML Daten werden per Ajax verarbeitet:<\/p>\n<pre><code class=\"ex\">\r\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\r\n&lt;ResultSet resultsAvailable=\"121\" resultsReturned=\"3\"&gt;\r\n   &lt;Result&gt;\r\n      &lt;Title&gt;Aiaia&lt;\/Title&gt;\r\n      &lt;Summary&gt;ein Rest&lt;\/Summary&gt;\r\n      &lt;Url&gt;http:\/\/www.aiaia.de\/Aiaia\/&lt;\/Url&gt;\r\n   &lt;\/Result&gt;\r\n   &lt;Result&gt;\r\n      &lt;Title&gt;Yolanda&lt;\/Title&gt;\r\n      &lt;Summary&gt;ein Muelleimer&lt;\/Summary&gt;\r\n      &lt;Url&gt;http:\/\/www.aiaia.de\/Yolanda\/&lt;\/Url&gt;\r\n   &lt;\/Result&gt;\r\n   &lt;Result&gt;\r\n      &lt;Title&gt;dadidi&lt;\/Title&gt;\r\n      &lt;Summary&gt;etwas Seltsames ist passiert&lt;\/Summary&gt;\r\n      &lt;Url&gt;http:\/\/www.aiaia.de\/Dadidi\/&lt;\/Url&gt;\r\n   &lt;\/Result&gt;\r\n&lt;\/ResultSet&gt;\r\n<\/code><\/pre>\n<table class=\"rosa\">\n<tr>\n<td>\n<pre><code class=\"ex\">&lt;script&gt;\r\nrequest = new XMLHttpRequest();\r\n\r\nfunction dynTable() {\r\nif (request.readyState == 4) {\r\n\r\nvar xml = request.responseXML;\r\nvar anzahl = document.getElementById(\"Anzahl\");\r\nvar gesamt = document.getElementById(\"Gesamt\");\r\n\r\n<strong>\/\/documentElement Wurzelknoten des XML-DOM\r\n\/\/getAttribute greift auf ein Attribut eines Knotens zu<\/strong>\r\nanzahl.innerHTML = xml.documentElement.getAttribute(\"resultsReturned\");\r\ngesamt.innerHTML = xml.documentElement.getAttribute(\"resultsAvailable\");\r\n\r\nvar tabelle = document.getElementById(\"Tabelle\");\r\nvar tbody   = document.createElement(\"tbody\");\r\n\r\n<strong>\/\/Liste aller Knoten mit dem angegebenen Namen<\/strong>\r\nvar ergebnisse = xml.getElementsByTagName(\"Result\");\r\nfor (var i=0; i&lt;ergebnisse.length; i++) {\r\n\r\n<strong>\/\/ neue Zeile<\/strong>\r\nvar zeile   = document.createElement(\"tr\");\r\n\r\n<strong>\/\/ drei neue Zellen<\/strong>\r\nvar titel  = document.createElement(\"td\");\r\nvar descr  = document.createElement(\"td\");\r\nvar url    = document.createElement(\"td\");\r\n\r\n<strong>\/\/ pro Zelle ein Textknoten mit den Xml Daten<\/strong>\r\nvar titeltext, descrtext, urltext;\r\n\r\nfor (var j=0; j&lt;ergebnisse[i].childNodes.length; j++) {\r\n   var knoten = ergebnisse[i].childNodes[j];\r\n\r\n   switch(knoten.nodeName) {\r\n   case \"Title\":\r\n      titeltext = document.createTextNode(knoten.firstChild.nodeValue);\r\n      break;\r\n   case \"Summary\":\r\n      descrtext = document.createTextNode(knoten.firstChild.nodeValue);\r\n      break;\r\n   case \"Url\":\r\n      urltext = document.createTextNode(knoten.firstChild.nodeValue);\r\n      break;\r\n   }\r\n}\r\n\r\n<strong>\/\/ Textkonten wird an Zelle gehaengt<\/strong>\r\ntitel.appendChild(titeltext);\r\ndescr.appendChild(descrtext);\r\nurl.appendChild(urltext);\r\n\r\n<strong>\/\/ Zelle wird an Zeile gehaengt<\/strong>\r\nzeile.appendChild(titel);\r\nzeile.appendChild(descr);\r\nzeile.appendChild(url);\r\n\r\n<strong>\/\/ Zeile wird an tbody gehaengt<\/strong>\r\ntbody.appendChild(zeile);\r\n\r\n}\r\n\r\n<strong>\/\/ tbody wird an Tabelle angehaengt<\/strong>\r\ntabelle.appendChild(tbody);\r\n}\r\n\r\nwindow.onload = function() {\r\n   request.open(\"GET\",\"roman.xml\");\r\n   request.onreadystatechange = dynTable;\r\n   request.send(null);\r\n}\r\n&lt; \/script&gt;\r\n<\/code><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Das XMLHttpRequest-Objekt besitzt neben der Eigenschaft responseText auch responseXML zur Abfrage des R\u00fcckgabewertes. Sofern der Server gueltiges XML liefert, ist responseXML ein XML-DOM-Objekt. Andernfalls enthaelt es den Wert null.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/posts\/82"}],"collection":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=82"}],"version-history":[{"count":0,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/posts\/82\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}