Open GoogleCodeExporter opened 8 years ago
Hi, I have the same issue.
I was able to track it and found where it comes from. It seems that the firefox
DOM parser does like this code:
try {
parsererrorNS = parser.parseFromString("INVALID", "text/xml").childNodes[0].namespaceURI;
}
catch(err) {
parsererrorNS = null;
}
When trying to parse the INVALID string, firefox DOM parser shows this "syntax
error" on HTML line 1 in the console, event if the conversion error is
surrounded by try-catch.
Original comment by geoffrey...@gmail.com
on 20 Feb 2015 at 7:37
Same here. Weird thing is that it works in Chrome perfectly. The XML seems also
to be OK. But it always fails in Firefox within the try-catch block posted
above.
Original comment by d...@dg-infotec.de
on 27 Mar 2015 at 1:45
I think the code is trying to solve the fact that some browsers include the
parsererror element in another namespace (eg:
http://stackoverflow.com/questions/11563554/how-do-i-detect-xml-parsing-errors-w
hen-using-javascripts-domparser-in-a-cross).
It parses an invalid xml to get the possible namespace for the parsererror
element.
What I think would be a better solution (altough I don't know if it will work
for all browsers) is to eliminate this check and use a wildcard to get all
parsererror elements independent of the namespace.
The patch below show the changes I have made and it has worked for me:
@@ -489,21 +489,9 @@
var xmlDoc;
if (window.DOMParser) {
var parser=new window.DOMParser();
- var parsererrorNS = null;
- // IE9+ now is here
- if(!isIEParser) {
- try {
- parsererrorNS = parser.parseFromString("<",
"text/xml").childNodes[0].namespaceURI;
- console.log(parsererrorNS);
- }
- catch(err) {
- console.log('error:' + err);
- parsererrorNS = null;
- }
- }
try {
xmlDoc = parser.parseFromString( xmlDocStr, "text/xml" );
- if( parsererrorNS!= null && xmlDoc.getElementsByTagNameNS(parsererrorNS,
"parsererror").length > 0) {
+ if(xmlDoc.getElementsByTagNameNS("*", "parsererror").length > 0) {
//throw new Error('Error parsing XML: '+xmlDocStr);
xmlDoc = null;
}
Original comment by vladlo...@gmail.com
on 2 Jun 2015 at 10:27
Original issue reported on code.google.com by
darryljcousins
on 18 Dec 2014 at 2:06