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:
Vielen Dank!
Thomas
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 ± 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