XML-Dokument korrekt 'zerflügen'
Snucky
- javascript
Hi,
versuche nun schon seit einigen Stunden, tatsächlich zu durchblicken, wie ich mit dem xml-Dokument verfahren soll. Es handelt sich um eine servergenierte Seite, da über einen xmlHttpRequest geladen wird.
An dieser Stelle wird der korrekte Header (header('Content-Type: text/xml;charset=utf-8');
) gesetzt. Welches Resultat aus der Anfrage rumkommt, habe ich mal mit einem Screenie festhalten können (Vorgang: alert(xmlHttpRequest.responseText);
screenshot
Konkret sehen meine Debugversuche so aus:
if (xmlRequest.status == 200)
{
var res = xmlRequest.responseXML;
for (var i=0; i<res.getElementsByTagName('fexp').length; i++)
{
// sollte mir die ID ausgeben...
// Erscheint allerdings nur null
alert(res.getElementsByTagName('id')[i].nodeValue));
}
}
Wie im Screenshot zu sehen ist, steht aber ein Wert drin und alert liefert immer nur null! Und das auch bei den anderen Tags...
Tach Snucky,
alert(res.getElementsByTagName('id')[i].nodeValue));
Das sollte eher so aussehen:
alert(res.getElementsByTagName('fexp')[i].getElementsByTagName('id')[0].firstChild.nodeValue));
BTW: Frage die Anzahl der fexp-Elemente vor der Schleife ab und nicht bei jedem Durchlauf neu.
Man liest sich,
svg4you
Das sollte eher so aussehen:
alert(res.getElementsByTagName('fexp')[i].getElementsByTagName('id')[0].firstChild.nodeValue));
Das klappt prima!!
> BTW: Frage die Anzahl der fexp-Elemente vor der Schleife ab und nicht bei jedem Durchlauf neu.
Ist das tatsächlich so? Ich war der Annahme, dass beim ersten Schleifenaufruf eine Adresse im Speicher mit dem Wert (Länge Array) gefüllt werden würde. Wär doch anders eh' Quatsch!
Tach Snucky,
Ich war der Annahme, dass beim ersten Schleifenaufruf eine Adresse im Speicher mit dem Wert (Länge Array) gefüllt werden würde. Wär doch anders eh' Quatsch!
Die Schleife muss die komplette Bedingung bei jedem Durchlauf neu prüfen, sonst könnte auch nicht auf Änderungen von object.length während des Abarbeitens reagiert werden, z. B. bei Anwendung von removeChild().
Wenn length also statisch ist, dann ist eine Variable sinnvoller.
Man liest sich,
svg4you