XML-File unter IE6 parsen

frager

Erfahrenes Mitglied
Hallo Community,

ich will mit Javascript ein XML-File parsen und desssen Inhalt auf einer Seite Darstellen, dazu habe ich den Ansatz:
Javascript:
<script type="text/javascript">
	function loadXmlDocument(xmlFile, cbFun)
	{
		 var xdoc;

		 if( window.ActiveXObject && /Win/.test(navigator.userAgent) )
		 {
				xdoc = new ActiveXObject("Microsoft.XMLDOM");

				xdoc.async = false;
				xdoc.load(xmlFile);

				cbFun(xdoc);

				return true;
		 }
		 else if( document.implementation && document.implementation.createDocument )
		 {
				xdoc = document.implementation.createDocument("", "", null);
				xdoc.load(xmlFile);

				xdoc.onload = function()
				{
					 cbFun(xdoc);
				}

				return true;
		 }
		 else
		 {
				return false;
		 }
	}
	
	function init()
	{
		var doc = "poi.xml";
		if(!loadXmlDocument(doc, handleXml)) {
			alert("loading failed");
		}
	}
	
	function handleXml(xmldoc)
	{
		if(xmldoc == null) {
			alert("xmldoc == null");
			return;
		}
		var masterelement = xmldoc.documentElement;
		if(masterelement == null) {
			alert("masterelement == null");
			return;
		}
		var div = document.getElementById("maindiv");
		var text = "";
		if(div != null) {
			text = masterelement.nodeName + "<br>";
			
			var attribs = masterelement.attributes;
			for(var i = 0; i < attribs.length; i++) {
				text += attribs[i].nodeName + " = " + attribs[i].nodeValue + "<br>";
			}
			div.innerHTML = text;
		} else {
			alert("Main DIV not found!");
		}
	}
	
</script>
...
<div id="maindiv"></div>

Dieser Code funktioniert mit Firefox und Opera einwandfrei, aber beim IE6 liefter dieser Aufruf anscheinend null (Zeile 49).
Javascript:
var masterelement = xmldoc.documentElement;

Koennt ihr mir da helfen? Ist der Ansatz ueberhaupt richtig, oder kann man die Sache auch einfacher loesen? Die Funktion loadXmlDocument(..) habe ich nicht selbst geschrieben, sonder im Web gefunden. :)
 
Zuletzt bearbeitet von einem Moderator:
Moin frager,

dein Code funktioniert bei mir 1A.

Eine mögliche Ursache für diesen Fehler könnte ein fehlerhaftes XML sein, poste es doch mal.

Möglicherweise holt sich der IE auch eine ältere(fehlerhafte) Version aus dem Cache.
Umgehen kannst du dies, wenn du es so lädts:
Code:
xdoc.load(xmlFile+'?'+new Date().getTime());
 
Hi, danke fuer den Tipp, aber das hat das Problem leider auch nicht geloest :(

aber wie ist das genau mit

xmlfile.load("<filename>?<unix_time>")

wird die datei nur dann geladen, wenn die unix_time groesser als das Veraenderungsdatum der Datei ist?

##EDIT##

Habe inzwischen den Fehler gefunden - in der XML-Datei war innerhalb eines COMMENT-Tags ein Umlaut drin, NUR EIN UMLAUT!! und da hat der IE gleich gestreikt! :((
 
Zurück