Java Reference
In-Depth Information
matierung über CSS immer noch das Problem, dass Sie ausschließlich an die Inhalte der
Elemente kommen, aber wie gesagt nicht an eventuell vorhandene Attribute oder die Ele-
mentnamen. Von daher bleibt ot sowieso nur die gezielte Navigation auf dem DOM-Baum
des nachgeforderten XML-Dokuments.
10.6.3.2■Die navigation auf dem XML-Baum
Die Verwendung von XML-Daten mit responseText im Client ist also nicht der Regelfall. Sie
geben damit eigentlich sämtliche Vorteile und Gründe auf, warum Sie überhaupt struktu-
rierte Informationen in Form von XML nachladen! Sie werden in der Regel mit den Daten,
die Sie im Client erhalten, auf andere Weise geeignet umgehen wollen. Dazu steht Ihnen das
Objekt node und responseXML als Eigenschat eines XHR-Objekts zur Verfügung. Gerade
wenn Sie vom Server Daten im XML-Format erhalten, ist die Möglichkeit der diferenzierten
Auswertung der Antwort im Client gegeben. Statt pauschal einen Bereich der Webseite mit
der kompletten Antwort zu füttern, suchen Sie auf dem Client den Teil aus einer XML-Ant-
wort heraus, der an eine ganz bestimmte Stelle gehört. Aus Sicht von AJAX ist es besonders
interessant, dass das XHR-Objekt selbst einen Knoten liefert, wenn Sie die responseXML -
Eigenschat betrachten. Dies ist der Wurzelknoten des XML-Dokuments, das als Antwort
vom Server geliefert wird. Ausgehend davon können Sie die Attributknoten, Textknoten und
weitere Kindknoten eines Knotens in der Antwort des Servers ansprechen. Selbst wenn der
Server HTML- oder XHTML-Fragmente als Antwort schickt, können Sie diese in der Regel
über die responseXML -Eigenschat im Client verwerten und dann auf dem resultierenden
Knoten die nachfolgenden Techniken einsetzen. Verwenden wir eine Abwandlung des letz-
ten Beispiels, um XML-Daten anzufordern und darauf im Client zu navigieren. In der neuen
HTML-Datei kap10_5.html müssen Sie bloß gegenüber kap10_4.html die externe JavaScript-
Datei kap10_5.js referenzieren, die Sie hier sehen:
Listing 10.13■ Die neue JavaScript-Datei
...
resOb.onreadystatechange = function() {
if (resOb.readyState == 4) {
var erg = resOb.responseXML;
document.getElementById("antwort").innerHTML =
erg.getElementsByTagName("titel")[0].irstChild.data + "<br />" +
erg.getElementsByTagName("url")[0].irstChild.data + "<hr />" +
erg.getElementsByTagName("titel")[1].irstChild.data + "<br />" +
erg.getElementsByTagName("url")[1].irstChild.data;
}
};
resOb.send(null);
}
...
In dem Beispiel navigieren wir auf einem node -Objekt, das über responseXML geliefert wird.
Dabei verwenden wir die schon bekannten Methoden und Eigenschaten des node -Objekts,
wie wir sie schon an diversen Stellen im Buch verwendet haben, nur eben auf einem auf
XML basierenden node -Objekt statt einem erzeugenden HTML-Fundament.
Sie sollten dabei beachten, dass diese Navigation in älteren Browsern nicht oder nur einge-
schränkt unterstützt wird. Insbesondere unterscheiden sich Browser darin, welcher
Bestandteil einer XML-Datei tatsächlich als Knoten zu sehen ist und welcher nicht. Das
 
Search WWH ::




Custom Search