• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Javascript IE10: XML DOMParser.parseFromString() - keine detaillierte Fehlerausgabe

T1H

New member
Wie kann man beim Internet Explorer 10 bei nicht erfolgreichem parseFromString() von fehlerhaften (nicht wohlgeformten) XML-Files mehr Fehlerinformationen (z.B. die fehlerhafte Zeilennummer des XML-Files) ausgeben?

Bei Chrome und Firefox ist ja diese Fehlerinformation im zurückgelieferten xml-Dokument im Tag <parsererror> enthalten. Beim IE10 wird jedoch ein Exception geworfen, kein xml-Doc zurückgeliefert (=undefined) und auch im catch Error steht nur "SyntaxError", jedoch keine detailliertere Information.

Bei uns in der Firma sind auf den geschlossenen Clients die IE-Einstellungen zentral festgelegt und unveränderbar (ausgegraut) und so ist auch "F12-Entwicklertools" und damit der Aufruf der Console blockiert. Dort würde ja dann auch die gewünschte Info zu finden sein.

Gibt es eine DOMParser-Lösung für IE10? Oder ist die einzige Möglichkeit beim IE die Sonderlocke mittels ActiveXObject("Microsoft.XMLDOM") und loadXML() zu fahren.

Hier mein Javascript-Ausschnitt zum Testen der Fehlerausgaben:

Code:
function TestXMLParser () {

var xmlDoc;
var err;
var strInputXML;

//Test-String mit (absichtlichem) Fehler in Zeile 3: nach &#177 fehlt das Semikolon
strInputXML = "<tagL0><tagL1><tagL2>Test1.1</tagL2>><tagL2>Test1.2</tagL2></tagL1>\n";
strInputXML = strInputXML + "<tagL1><tagL2>Test2.1</tagL2>><tagL2>Test2.2</tagL2></tagL1>\n";
strInputXML = strInputXML + "<tagL1><tagL2>Test3.1 &#L177 </tagL2</tagL1>\n";
strInputXML = strInputXML + "<tagL1><tagL2>Test4.1</tagL2>><tagL2>Test4.2</tagL2></tagL1><tagL0>";

var parser = new DOMParser();

try {	
	xmlDoc = parser.parseFromString(strInputXML, "text/xml");

} catch (err) {
	//IE10: xmlDoc ist an dieser Stelle null/undefined und err liefert als einzige Info "SyntaxError"
	alert(err.toString());
}

//Fehlerausgabe bei Chrome und Firefox
if(xmlDoc != null) {
	if (xmlDoc.getElementsByTagName("parsererror")[0]) {

		//detaillierte Fehlermeldung
		alert(xmlDoc.getElementsByTagName("parsererror")[0].textContent);

	}
}
}

Vielen Dank!
Thomas
 
Ja, ActiveX ist bei uns freigegeben und ich habe jetzt für den IE einfach einen Sonderzweig mit der ActiveX-Lösung implementiert. Etwas unschön, aber es funktioniert soweit alles.
 
Zurück
Oben