blob: af8ae2422ec63cb2a6db7781884098efae5df190 [file] [log] [blame]
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.xml.widgetParser"]){
dojo._hasResource["dojox.xml.widgetParser"]=true;
dojo.provide("dojox.xml.widgetParser");
dojo.require("dojox.xml.parser");
dojo.require("dojo.parser");
dojox.xml.widgetParser=new function(){
var d=dojo;
this.parseNode=function(_1){
var _2=[];
d.query("script[type='text/xml']",_1).forEach(function(_3){
_2.push.apply(_2,this._processScript(_3));
},this).orphan();
return d.parser.instantiate(_2);
};
this._processScript=function(_4){
var _5=_4.src?d._getText(_4.src):_4.innerHTML||_4.firstChild.nodeValue;
var _6=this.toHTML(dojox.xml.parser.parse(_5).firstChild);
var _7=d.query("[dojoType]",_6);
dojo.query(">",_6).place(_4,"before");
_4.parentNode.removeChild(_4);
return _7;
};
this.toHTML=function(_8){
var _9;
var _a=_8.nodeName;
var dd=dojo.doc;
var _b=_8.nodeType;
if(_b>=3){
return dd.createTextNode((_b==3||_b==4)?_8.nodeValue:"");
}
var _c=_8.localName||_a.split(":").pop();
var _d=_8.namespaceURI||(_8.getNamespaceUri?_8.getNamespaceUri():"");
if(_d=="html"){
_9=dd.createElement(_c);
}else{
var _e=_d+"."+_c;
_9=_9||dd.createElement((_e=="dijit.form.ComboBox")?"select":"div");
_9.setAttribute("dojoType",_e);
}
d.forEach(_8.attributes,function(_f){
var _10=_f.name||_f.nodeName;
var _11=_f.value||_f.nodeValue;
if(_10.indexOf("xmlns")!=0){
if(dojo.isIE&&_10=="style"){
_9.style.setAttribute("cssText",_11);
}else{
_9.setAttribute(_10,_11);
}
}
});
d.forEach(_8.childNodes,function(cn){
var _12=this.toHTML(cn);
if(_c=="script"){
_9.text+=_12.nodeValue;
}else{
_9.appendChild(_12);
}
},this);
return _9;
};
}();
}