You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2017/08/04 12:15:45 UTC
git commit: [flex-asjs] [refs/heads/develop] - Made finding errorNS
more efficient I think this fixed MS browsers Better XML errors
Repository: flex-asjs
Updated Branches:
refs/heads/develop 19fa436d6 -> 10be5b82f
Made finding errorNS more efficient
I think this fixed MS browsers
Better XML errors
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/10be5b82
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/10be5b82
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/10be5b82
Branch: refs/heads/develop
Commit: 10be5b82ff91db9ec77966ba6d8c7c37defa6f81
Parents: 19fa436
Author: Harbs <ha...@in-tools.com>
Authored: Fri Aug 4 15:15:40 2017 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Fri Aug 4 15:15:40 2017 +0300
----------------------------------------------------------------------
frameworks/projects/XML/src/main/flex/XML.as | 30 +++++++++++++++++------
1 file changed, 23 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/10be5b82/frameworks/projects/XML/src/main/flex/XML.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/flex/XML.as b/frameworks/projects/XML/src/main/flex/XML.as
index f09a018..7970df1 100644
--- a/frameworks/projects/XML/src/main/flex/XML.as
+++ b/frameworks/projects/XML/src/main/flex/XML.as
@@ -339,18 +339,34 @@ package
);
}
-
+ private static var errorNS:String;
private function parseXMLStr(xml:String):void
{
var parser:DOMParser = new DOMParser();
- // get error namespace. It's different in different browsers.
- var errorNS:String = parser.parseFromString('<', 'application/xml').getElementsByTagName("parsererror")[0].namespaceURI;
-
- var doc:Document = parser.parseFromString(xml, "application/xml");
+ if(errorNS == null)
+ {
+ // get error namespace. It's different in different browsers.
+ try{
+ errorNS = parser.parseFromString('<', 'application/xml').getElementsByTagName("parsererror")[0].namespaceURI;
+ }
+ catch(err:Error){
+ // Some browsers (i.e. IE) just throw an error
+ errorNS = "na";
+ }
+ }
+ try
+ {
+ var doc:Document = parser.parseFromString(xml, "application/xml");
+ }
+ catch(err:Error)
+ {
+ throw err;
+ }
//check for errors
- if(doc.getElementsByTagNameNS(errorNS, 'parsererror').length > 0)
- throw new Error('XML parse error');
+ var errorNodes:NodeList = doc.getElementsByTagNameNS(errorNS, 'parsererror');
+ if(errorNodes.length > 0)
+ throw new Error(errorNodes[0].innerHTML);
for(var i:int=0;i<doc.childNodes.length;i++)
{
var node:Element = doc.childNodes[i];