JavaScript Einsteigerfrage: XML-Struktur kann nicht ausgelesen werden

capilano

Lt. Junior Grade
Registriert
Juli 2009
Beiträge
375
Einen schönen Abend zusammen,

ich wollte mich ein wenig in AJAX versuchen und habe dadurch die W3CSchool Tutorials gemacht.
Allerdings kann ich die Daten nicht richtig auslesen, ich wollte z.B. im folgenden Beispiel die Heimmanschaften auflisten.

Code:
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(url)
{
	var xmlhttp;
	if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp=new XMLHttpRequest();
		}else{// code for IE6, IE5
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.onreadystatechange=function(){
	if(xmlhttp.readyState==4 && xmlhttp.status==200){
			document.getElementById('A1').innerHTML=xmlhttp.status;
			document.getElementById('A2').innerHTML=xmlhttp.statusText;
			document.getElementById('A3').innerHTML=xmlhttp.responseText;
			
			// Problemabschnitt
			var names = "";
			var xmlCon = xmlhttp.responseXML;
			var daten = xmlCon.getElementsByTagName('HEIM');
			for (i=0;i<daten.length;i++) {
				names = names + daten[i].childNodes[0].nodeValue;
			}
			document.getElementById('myDiv').innerHTML=names;
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}
</script>
</head>
<body>

<div id="myDiv">test</div>
<button onclick="loadXMLDoc('sportticker.xml')">LOAD</button>

<p><b>Status:</b><span id="A1"></span></p>
<p><b>Status text:</b><span id="A2"></span></p>
<p><b>Response:</b><span id="A3"></span></p>
</body>
</html>

Die XMLDatein sieht so aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SAISON>
	<SPIELTAG>
		<HEIM>SV Team I</HEIM>
		<GAST>SV Gegner III</GAST>
		<ANSTOSS>12:30</ANSTOSS>
		<SPIELORT>Sportplatz</SPIELORT>
		<SPIELSTAND>0:0</SPIELSTAND>
	</SPIELTAG>
	<SPIELTAG>
		<HEIM>SV Team I</HEIM>
		<GAST>SG Gegner II</GAST>
		<ANSTOSS>12:30</ANSTOSS>
		<SPIELORT>Sportplatz</SPIELORT>
		<SPIELSTAND>0:0</SPIELSTAND>
	</SPIELTAG>
	<SPIELTAG>
		<HEIM>SV Team I</HEIM>
		<GAST>SG Gegner I</GAST>
		<ANSTOSS>12:30</ANSTOSS>
		<SPIELORT>Sportplatz</SPIELORT>
		<SPIELSTAND>0:0</SPIELSTAND>
	</SPIELTAG>
</SAISON>

die Ausgabe ist:
test
[LOAD] //(Button)

Status:200

Status text:OK

Response: SV Team I SV Gegner III 12:30 Sportplatz 0:0 SV Team I SG Gegner II 12:30 Sportplatz 0:0 SV Team I SG Gegner I 12:30 Sportplatz 0:0

Nun weiß ich nicht ganz, wieso der Bereich "Problemabschnitt" nicht funktioniert. Habt ihr eventl. einen Hinweis? Vielen Dank für die Mühen.

Liebe Grüße,
cap
 
Zuletzt bearbeitet:
Liegt das eventuell am Context in dem das JAvascript ausgeführt wird ? liegt die besagte Datei in einem für den Webserver lesbaren bereich ? Welchen Browser verwendest du ? Für gewöhnlich verwendet man das XMLHttpRequest Object nicht mehr direkt sondern nimmt dafür Bibliotheken die da eine Abstrahierungsebene implementiert haben die dann leicht zu verwenden ist, z.B jQuery.
 
Browser ist FF 27 (Nightly) und der aktuelle Chrome, ich nutze den HFS Server zum aufrufen und er kann ja auf die Daten zugreifen (bei der Ausgabe unter Response sind alle Inhalte aufgeführt), beide Dateien habe ich bei dem Server in den File System geladen.
Bei der W3C School Seite war dies möglich mit dem Auslesen, deswegen wollte ich es selber mal durchführen.
 
edit: schwachsinn, der letzte wert sollte eigentl. drin stehen, hast dir das mal in der console ausgeben lassen?
 
200 ticker.html:23
Uncaught TypeError: Cannot call method 'getElementsByTagName' of null ticker.html:25

Zeile 23 ist console.log(xmlhttp.status); zum testen.
Also kann er die Methode nicht aufrufen bzw. er erkennt das Element "Spieltag" nciht..
 
Zurück
Oben