AJAX - XML lässt sich nicht auslesen

Brutus5000

Fleet Captain Special
Mitglied seit
13.04.2002
Beiträge
283
Renomée
2
Standort
Bochum
  • SIMAP Race
Hi Leute!

Ich experimentiere gerade ein bisschen mit AJAX, genaugenommen mit der Prototype Bibliothek.
Ich hab jetzt ne XML Auflistung in einer externen Datei:

Code:
<list>
<item id="item 3" />
<item id="item 4" />
</list>

Davon möchte ich aus jedem <item>-Element die ID herausschreiben. Wenn die XML Auflistung innerhalb der HTML-Datei ist funktioniert das auch mit

document.getElementsByTagName('item').id


Wenn die XML-Datei jedoch per AJAX geladen wird, erhalte ich statt der ID nur "undefined".

Hier nochmal der ganze Code der HTML Datei:

Code:
<?xml version="1.0" encoding="utf-8"?>
<list>
<item id="item 1" />
<item id="item 2" />
</list>
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">

function DoAjax()
{
	var AjaxXML = new Ajax.Request( "items.xml", { method: 'get', onComplete: DoAjaxXML } );
}

function DoAjaxXML( originalRequest )
{
	var xmlDocument = originalRequest.responseXML.documentElement;

	$('AjaxXML').innerHTML = "";
	
	alert(xmlDocument.getElementsByTagName('item').length);
	for (var i = 0; i < xmlDocument.getElementsByTagName('item').length; i++)
	{
		$('AjaxXML').innerHTML +=
			xmlDocument.getElementsByTagName('item')[i].id + "<br />";
	}
	
	alert(document.getElementsByTagName('item').length);
	for (var i = 0; i < document.getElementsByTagName('item').length; i++)
	{
		$('AjaxXML').innerHTML +=
			document.getElementsByTagName('item')[i].id + "<br />";
	}
}
</script>
</head>
<body onLoad="DoAjax()">
	<div id="AjaxXML">Bitte warten</div><p />
</body>
</html>

Die Ausgabe wäre jetzt

undefined
undefined
item 3
item 4


Hat jemand ne Ahnung warum? Was ich falsch mache?
Bin für jede Hilfe dankbar! :)
.
EDIT :
.

Problem gelöst. Das Attribut .id scheint nicht immer zu funktionieren, dafür aber

xmlDocument.getElementsByTagName('item').getAttribute('id')
 
Zurück
Oben Unten