Lutz: ajax anfänger: Verarbeitung von XML-Dateien unvollständig

Hallo!

Mich treibt ein Problem mit Ajax in den Wahnsinn - hoffentlich könnt Ihr mir dabei helfen:

Ich habe ein PHP-Skript, das dynamisch eine simple XML-Datei generiert. Das PHP-Skript wird von einem asynchronen JavaScript aufgerufen und die XML-Datei von einem anderen JavaScript verarbeitet. Dieses JavaScript erstellt aus den Einträgen der XML-Datei eine Checkbox-Liste.

Das Problem ist, dass die Rückgabe-Datei teilweise nicht vollständig verarbeitet wird. Teilweise werden alle Einträge abgearbeitet, teilweise fehlen die letzten zwei oder drei, und manchmal kommt nach dem Verarbeiten des letzten Wertes noch die Ausgabe der Fehlermeldung des catch-Blocks.

Ich liste nochmal eine gekürzte Fassung der XML-Datei und der verarbeitenden JavaScript-Funktion.

<?xml version="1.0" ?>
<datei>
 <allgemein>
  <name>Allgemeine Infos</name>
  <beschreibung>Die folgenden Werte kommen vom PHP-Skript</beschreibung>
 </allgemein>
 <eintrag>
  <id>26</id>
  <shname>irgendein Wert</shname>
 </eintrag>
 <eintrag>
  <id>27</id>
  <shname>ein anderer Wert</shname>
 </eintrag>
</datei>

function printList(xmldoc) {
   var resultDiv = document.getElementById('entryResult');
 resultDiv.innerHTML = '';
 try {
  var entryArr = xmldoc.getElementsByTagName('eintrag')[0].childNodes;
  for (var i = 0; i < stationArr.length; i++) {
   var resultCBox = document.createElement('input');
   resultCBox.setAttribute('type','checkbox');
   resultCBox.setAttribute('name','eintrag['+i+']');
   resultDiv.appendChild(resultCBox);
   resultDiv.appendChild(document.createTextNode(
    " " + xmldoc.getElementsByTagName('shname')[i].firstChild.nodeValue));
   resultDiv.appendChild(document.createElement('br'));
  }
 } catch (e) {
//  alert ("error: " + e);
  resultDiv.appendChild(document.createTextNode("There are no entries defined for this file."));
 }
} //end printList

(Hintergrund-Information: printList wird als Callback-Funktion auf den asynchronen PHP-Aufruf angewandt. Ich habe mich dabei an folgendem Tutorial orientiert:
http://www.sitepoint.com/article/take-command-ajax )