132 lines
2.7 KiB
JavaScript
132 lines
2.7 KiB
JavaScript
//>>built
|
|
define("dojox/xml/parser",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/array","dojo/_base/window","dojo/_base/sniff"],function(_1){
|
|
_1.getObject("xml.parser",true,dojox);
|
|
dojox.xml.parser.parse=function(_2,_3){
|
|
var _4=_1.doc;
|
|
var _5;
|
|
_3=_3||"text/xml";
|
|
if(_2&&_1.trim(_2)&&"DOMParser" in _1.global){
|
|
var _6=new DOMParser();
|
|
_5=_6.parseFromString(_2,_3);
|
|
var de=_5.documentElement;
|
|
var _7="http://www.mozilla.org/newlayout/xml/parsererror.xml";
|
|
if(de.nodeName=="parsererror"&&de.namespaceURI==_7){
|
|
var _8=de.getElementsByTagNameNS(_7,"sourcetext")[0];
|
|
if(_8){
|
|
_8=_8.firstChild.data;
|
|
}
|
|
throw new Error("Error parsing text "+de.firstChild.data+" \n"+_8);
|
|
}
|
|
return _5;
|
|
}else{
|
|
if("ActiveXObject" in _1.global){
|
|
var ms=function(n){
|
|
return "MSXML"+n+".DOMDocument";
|
|
};
|
|
var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];
|
|
_1.some(dp,function(p){
|
|
try{
|
|
_5=new ActiveXObject(p);
|
|
}
|
|
catch(e){
|
|
return false;
|
|
}
|
|
return true;
|
|
});
|
|
if(_2&&_5){
|
|
_5.async=false;
|
|
_5.loadXML(_2);
|
|
var pe=_5.parseError;
|
|
if(pe.errorCode!==0){
|
|
throw new Error("Line: "+pe.line+"\n"+"Col: "+pe.linepos+"\n"+"Reason: "+pe.reason+"\n"+"Error Code: "+pe.errorCode+"\n"+"Source: "+pe.srcText);
|
|
}
|
|
}
|
|
if(_5){
|
|
return _5;
|
|
}
|
|
}else{
|
|
if(_4.implementation&&_4.implementation.createDocument){
|
|
if(_2&&_1.trim(_2)&&_4.createElement){
|
|
var _9=_4.createElement("xml");
|
|
_9.innerHTML=_2;
|
|
var _a=_4.implementation.createDocument("foo","",null);
|
|
_1.forEach(_9.childNodes,function(_b){
|
|
_a.importNode(_b,true);
|
|
});
|
|
return _a;
|
|
}else{
|
|
return _4.implementation.createDocument("","",null);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
dojox.xml.parser.textContent=function(_c,_d){
|
|
if(arguments.length>1){
|
|
var _e=_c.ownerDocument||_1.doc;
|
|
dojox.xml.parser.replaceChildren(_c,_e.createTextNode(_d));
|
|
return _d;
|
|
}else{
|
|
if(_c.textContent!==undefined){
|
|
return _c.textContent;
|
|
}
|
|
var _f="";
|
|
if(_c){
|
|
_1.forEach(_c.childNodes,function(_10){
|
|
switch(_10.nodeType){
|
|
case 1:
|
|
case 5:
|
|
_f+=dojox.xml.parser.textContent(_10);
|
|
break;
|
|
case 3:
|
|
case 2:
|
|
case 4:
|
|
_f+=_10.nodeValue;
|
|
}
|
|
});
|
|
}
|
|
return _f;
|
|
}
|
|
};
|
|
dojox.xml.parser.replaceChildren=function(_11,_12){
|
|
var _13=[];
|
|
if(_1.isIE){
|
|
_1.forEach(_11.childNodes,function(_14){
|
|
_13.push(_14);
|
|
});
|
|
}
|
|
dojox.xml.parser.removeChildren(_11);
|
|
_1.forEach(_13,_1.destroy);
|
|
if(!_1.isArray(_12)){
|
|
_11.appendChild(_12);
|
|
}else{
|
|
_1.forEach(_12,function(_15){
|
|
_11.appendChild(_15);
|
|
});
|
|
}
|
|
};
|
|
dojox.xml.parser.removeChildren=function(_16){
|
|
var _17=_16.childNodes.length;
|
|
while(_16.hasChildNodes()){
|
|
_16.removeChild(_16.firstChild);
|
|
}
|
|
return _17;
|
|
};
|
|
dojox.xml.parser.innerXML=function(_18){
|
|
if(_18.innerXML){
|
|
return _18.innerXML;
|
|
}else{
|
|
if(_18.xml){
|
|
return _18.xml;
|
|
}else{
|
|
if(typeof XMLSerializer!="undefined"){
|
|
return (new XMLSerializer()).serializeToString(_18);
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
return dojox.xml.parser;
|
|
});
|