|
@@ -0,0 +1,319 @@
|
|
|
+//>>built
|
|
|
+define("dojox/xml/DomParser",["dojo/_base/kernel","dojo/_base/array"],function(_1){
|
|
|
+_1.getObject("xml",true,dojox);
|
|
|
+dojox.xml.DomParser=new (function(){
|
|
|
+var _2={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9};
|
|
|
+var _3=/<([^>\/\s+]*)([^>]*)>([^<]*)/g;
|
|
|
+var _4=/([^=]*)=(("([^"]*)")|('([^']*)'))/g;
|
|
|
+var _5=/<!ENTITY\s+([^"]*)\s+"([^"]*)">/g;
|
|
|
+var _6=/<!\[CDATA\[([\u0001-\uFFFF]*?)\]\]>/g;
|
|
|
+var _7=/<!--([\u0001-\uFFFF]*?)-->/g;
|
|
|
+var _8=/^\s+|\s+$/g;
|
|
|
+var _9=/\s+/g;
|
|
|
+var _a=/\>/g;
|
|
|
+var _b=/\</g;
|
|
|
+var _c=/\"/g;
|
|
|
+var _d=/\'/g;
|
|
|
+var _e=/\&/g;
|
|
|
+var _f="_def_";
|
|
|
+function _10(){
|
|
|
+return new (function(){
|
|
|
+var all={};
|
|
|
+this.nodeType=_2.DOCUMENT;
|
|
|
+this.nodeName="#document";
|
|
|
+this.namespaces={};
|
|
|
+this._nsPaths={};
|
|
|
+this.childNodes=[];
|
|
|
+this.documentElement=null;
|
|
|
+this._add=function(obj){
|
|
|
+if(typeof (obj.id)!="undefined"){
|
|
|
+all[obj.id]=obj;
|
|
|
+}
|
|
|
+};
|
|
|
+this._remove=function(id){
|
|
|
+if(all[id]){
|
|
|
+delete all[id];
|
|
|
+}
|
|
|
+};
|
|
|
+this.byId=this.getElementById=function(id){
|
|
|
+return all[id];
|
|
|
+};
|
|
|
+this.byName=this.getElementsByTagName=_11;
|
|
|
+this.byNameNS=this.getElementsByTagNameNS=_12;
|
|
|
+this.childrenByName=_13;
|
|
|
+this.childrenByNameNS=_14;
|
|
|
+})();
|
|
|
+};
|
|
|
+function _11(_15){
|
|
|
+function _16(_17,_18,arr){
|
|
|
+_1.forEach(_17.childNodes,function(c){
|
|
|
+if(c.nodeType==_2.ELEMENT){
|
|
|
+if(_18=="*"){
|
|
|
+arr.push(c);
|
|
|
+}else{
|
|
|
+if(c.nodeName==_18){
|
|
|
+arr.push(c);
|
|
|
+}
|
|
|
+}
|
|
|
+_16(c,_18,arr);
|
|
|
+}
|
|
|
+});
|
|
|
+};
|
|
|
+var a=[];
|
|
|
+_16(this,_15,a);
|
|
|
+return a;
|
|
|
+};
|
|
|
+function _12(_19,ns){
|
|
|
+function _1a(_1b,_1c,ns,arr){
|
|
|
+_1.forEach(_1b.childNodes,function(c){
|
|
|
+if(c.nodeType==_2.ELEMENT){
|
|
|
+if(_1c=="*"&&c.ownerDocument._nsPaths[ns]==c.namespace){
|
|
|
+arr.push(c);
|
|
|
+}else{
|
|
|
+if(c.localName==_1c&&c.ownerDocument._nsPaths[ns]==c.namespace){
|
|
|
+arr.push(c);
|
|
|
+}
|
|
|
+}
|
|
|
+_1a(c,_1c,ns,arr);
|
|
|
+}
|
|
|
+});
|
|
|
+};
|
|
|
+if(!ns){
|
|
|
+ns=_f;
|
|
|
+}
|
|
|
+var a=[];
|
|
|
+_1a(this,_19,ns,a);
|
|
|
+return a;
|
|
|
+};
|
|
|
+function _13(_1d){
|
|
|
+var a=[];
|
|
|
+_1.forEach(this.childNodes,function(c){
|
|
|
+if(c.nodeType==_2.ELEMENT){
|
|
|
+if(_1d=="*"){
|
|
|
+a.push(c);
|
|
|
+}else{
|
|
|
+if(c.nodeName==_1d){
|
|
|
+a.push(c);
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+});
|
|
|
+return a;
|
|
|
+};
|
|
|
+function _14(_1e,ns){
|
|
|
+var a=[];
|
|
|
+_1.forEach(this.childNodes,function(c){
|
|
|
+if(c.nodeType==_2.ELEMENT){
|
|
|
+if(_1e=="*"&&c.ownerDocument._nsPaths[ns]==c.namespace){
|
|
|
+a.push(c);
|
|
|
+}else{
|
|
|
+if(c.localName==_1e&&c.ownerDocument._nsPaths[ns]==c.namespace){
|
|
|
+a.push(c);
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+});
|
|
|
+return a;
|
|
|
+};
|
|
|
+function _1f(v){
|
|
|
+return {nodeType:_2.TEXT,nodeName:"#text",nodeValue:v.replace(_9," ").replace(_a,">").replace(_b,"<").replace(_d,"'").replace(_c,"\"").replace(_e,"&")};
|
|
|
+};
|
|
|
+function _20(_21){
|
|
|
+for(var i=0;i<this.attributes.length;i++){
|
|
|
+if(this.attributes[i].nodeName==_21){
|
|
|
+return this.attributes[i].nodeValue;
|
|
|
+}
|
|
|
+}
|
|
|
+return null;
|
|
|
+};
|
|
|
+function _22(_23,ns){
|
|
|
+for(var i=0;i<this.attributes.length;i++){
|
|
|
+if(this.ownerDocument._nsPaths[ns]==this.attributes[i].namespace&&this.attributes[i].localName==_23){
|
|
|
+return this.attributes[i].nodeValue;
|
|
|
+}
|
|
|
+}
|
|
|
+return null;
|
|
|
+};
|
|
|
+function _24(_25,val){
|
|
|
+var old=null;
|
|
|
+for(var i=0;i<this.attributes.length;i++){
|
|
|
+if(this.attributes[i].nodeName==_25){
|
|
|
+old=this.attributes[i].nodeValue;
|
|
|
+this.attributes[i].nodeValue=val;
|
|
|
+break;
|
|
|
+}
|
|
|
+}
|
|
|
+if(_25=="id"){
|
|
|
+if(old!=null){
|
|
|
+this.ownerDocument._remove(old);
|
|
|
+}
|
|
|
+this.ownerDocument._add(this);
|
|
|
+}
|
|
|
+};
|
|
|
+function _26(_27,val,ns){
|
|
|
+for(var i=0;i<this.attributes.length;i++){
|
|
|
+if(this.ownerDocument._nsPaths[ns]==this.attributes[i].namespace&&this.attributes[i].localName==_27){
|
|
|
+this.attributes[i].nodeValue=val;
|
|
|
+return;
|
|
|
+}
|
|
|
+}
|
|
|
+};
|
|
|
+function _28(){
|
|
|
+var p=this.parentNode;
|
|
|
+if(p){
|
|
|
+for(var i=0;i<p.childNodes.length;i++){
|
|
|
+if(p.childNodes[i]==this&&i>0){
|
|
|
+return p.childNodes[i-1];
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+return null;
|
|
|
+};
|
|
|
+function _29(){
|
|
|
+var p=this.parentNode;
|
|
|
+if(p){
|
|
|
+for(var i=0;i<p.childNodes.length;i++){
|
|
|
+if(p.childNodes[i]==this&&(i+1)<p.childNodes.length){
|
|
|
+return p.childNodes[i+1];
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+return null;
|
|
|
+};
|
|
|
+this.parse=function(str){
|
|
|
+var _2a=_10();
|
|
|
+if(str==null){
|
|
|
+return _2a;
|
|
|
+}
|
|
|
+if(str.length==0){
|
|
|
+return _2a;
|
|
|
+}
|
|
|
+if(str.indexOf("<!ENTITY")>0){
|
|
|
+var _2b,eRe=[];
|
|
|
+if(_5.test(str)){
|
|
|
+_5.lastIndex=0;
|
|
|
+while((_2b=_5.exec(str))!=null){
|
|
|
+eRe.push({entity:"&"+_2b[1].replace(_8,"")+";",expression:_2b[2]});
|
|
|
+}
|
|
|
+for(var i=0;i<eRe.length;i++){
|
|
|
+str=str.replace(new RegExp(eRe[i].entity,"g"),eRe[i].expression);
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+var _2c=[],_2d;
|
|
|
+while((_2d=_6.exec(str))!=null){
|
|
|
+_2c.push(_2d[1]);
|
|
|
+}
|
|
|
+for(var i=0;i<_2c.length;i++){
|
|
|
+str=str.replace(_2c[i],i);
|
|
|
+}
|
|
|
+var _2e=[],_2f;
|
|
|
+while((_2f=_7.exec(str))!=null){
|
|
|
+_2e.push(_2f[1]);
|
|
|
+}
|
|
|
+for(i=0;i<_2e.length;i++){
|
|
|
+str=str.replace(_2e[i],i);
|
|
|
+}
|
|
|
+var res,obj=_2a;
|
|
|
+while((res=_3.exec(str))!=null){
|
|
|
+if(res[2].charAt(0)=="/"&&res[2].replace(_8,"").length>1){
|
|
|
+if(obj.parentNode){
|
|
|
+obj=obj.parentNode;
|
|
|
+}
|
|
|
+var _30=(res[3]||"").replace(_8,"");
|
|
|
+if(_30.length>0){
|
|
|
+obj.childNodes.push(_1f(_30));
|
|
|
+}
|
|
|
+}else{
|
|
|
+if(res[1].length>0){
|
|
|
+if(res[1].charAt(0)=="?"){
|
|
|
+var _31=res[1].substr(1);
|
|
|
+var _32=res[2].substr(0,res[2].length-2);
|
|
|
+obj.childNodes.push({nodeType:_2.PROCESSING_INSTRUCTION,nodeName:_31,nodeValue:_32});
|
|
|
+}else{
|
|
|
+if(res[1].charAt(0)=="!"){
|
|
|
+if(res[1].indexOf("![CDATA[")==0){
|
|
|
+var val=parseInt(res[1].replace("![CDATA[","").replace("]]",""));
|
|
|
+obj.childNodes.push({nodeType:_2.CDATA_SECTION,nodeName:"#cdata-section",nodeValue:_2c[val]});
|
|
|
+}else{
|
|
|
+if(res[1].substr(0,3)=="!--"){
|
|
|
+var val=parseInt(res[1].replace("!--","").replace("--",""));
|
|
|
+obj.childNodes.push({nodeType:_2.COMMENT,nodeName:"#comment",nodeValue:_2e[val]});
|
|
|
+}
|
|
|
+}
|
|
|
+}else{
|
|
|
+var _31=res[1].replace(_8,"");
|
|
|
+var o={nodeType:_2.ELEMENT,nodeName:_31,localName:_31,namespace:_f,ownerDocument:_2a,attributes:[],parentNode:null,childNodes:[]};
|
|
|
+if(_31.indexOf(":")>-1){
|
|
|
+var t=_31.split(":");
|
|
|
+o.namespace=t[0];
|
|
|
+o.localName=t[1];
|
|
|
+}
|
|
|
+o.byName=o.getElementsByTagName=_11;
|
|
|
+o.byNameNS=o.getElementsByTagNameNS=_12;
|
|
|
+o.childrenByName=_13;
|
|
|
+o.childrenByNameNS=_14;
|
|
|
+o.getAttribute=_20;
|
|
|
+o.getAttributeNS=_22;
|
|
|
+o.setAttribute=_24;
|
|
|
+o.setAttributeNS=_26;
|
|
|
+o.previous=o.previousSibling=_28;
|
|
|
+o.next=o.nextSibling=_29;
|
|
|
+var _33;
|
|
|
+while((_33=_4.exec(res[2]))!=null){
|
|
|
+if(_33.length>0){
|
|
|
+var _31=_33[1].replace(_8,"");
|
|
|
+var val=(_33[4]||_33[6]||"").replace(_9," ").replace(_a,">").replace(_b,"<").replace(_d,"'").replace(_c,"\"").replace(_e,"&");
|
|
|
+if(_31.indexOf("xmlns")==0){
|
|
|
+if(_31.indexOf(":")>0){
|
|
|
+var ns=_31.split(":");
|
|
|
+_2a.namespaces[ns[1]]=val;
|
|
|
+_2a._nsPaths[val]=ns[1];
|
|
|
+}else{
|
|
|
+_2a.namespaces[_f]=val;
|
|
|
+_2a._nsPaths[val]=_f;
|
|
|
+}
|
|
|
+}else{
|
|
|
+var ln=_31;
|
|
|
+var ns=_f;
|
|
|
+if(_31.indexOf(":")>0){
|
|
|
+var t=_31.split(":");
|
|
|
+ln=t[1];
|
|
|
+ns=t[0];
|
|
|
+}
|
|
|
+o.attributes.push({nodeType:_2.ATTRIBUTE,nodeName:_31,localName:ln,namespace:ns,nodeValue:val});
|
|
|
+if(ln=="id"){
|
|
|
+o.id=val;
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+_2a._add(o);
|
|
|
+if(obj){
|
|
|
+obj.childNodes.push(o);
|
|
|
+o.parentNode=obj;
|
|
|
+if(res[2].charAt(res[2].length-1)!="/"){
|
|
|
+obj=o;
|
|
|
+}
|
|
|
+}
|
|
|
+var _30=res[3];
|
|
|
+if(_30.length>0){
|
|
|
+obj.childNodes.push(_1f(_30));
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+}
|
|
|
+for(var i=0;i<_2a.childNodes.length;i++){
|
|
|
+var e=_2a.childNodes[i];
|
|
|
+if(e.nodeType==_2.ELEMENT){
|
|
|
+_2a.documentElement=e;
|
|
|
+break;
|
|
|
+}
|
|
|
+}
|
|
|
+return _2a;
|
|
|
+};
|
|
|
+})();
|
|
|
+return dojox.xml.DomParser;
|
|
|
+});
|