[3102] | 1 | (function() |
---|
| 2 | {var _FILES=[];function _convert(pString) |
---|
| 3 | {if(typeof pString!='string') |
---|
| 4 | return false;if(window.ActiveXObject) |
---|
| 5 | {var _xmlDoc=new ActiveXObject("Microsoft.XMLDOM");_xmlDoc.async="false";_xmlDoc.loadXML(pString);} |
---|
| 6 | else |
---|
| 7 | {var parser=new DOMParser();var _xmlDoc=parser.parseFromString(pString,"text/xml");} |
---|
| 8 | return _xmlDoc;} |
---|
| 9 | function _load(pFile) |
---|
| 10 | {pFile=this._PATH+'xsl/'+pFile;if(!(_FILES[pFile])) |
---|
| 11 | {var _data=null;if(document.implementation.createDocument) |
---|
[3687] | 12 | {var xmlHttp=new window.XMLHttpRequest();xmlHttp.open("GET",pFile+'?'+Date.parse(new Date),false);xmlHttp.send(null);_data=xmlHttp.responseXML.documentElement;} |
---|
| 13 | else |
---|
| 14 | {_data=new ActiveXObject("Msxml2.FreeThreadedDOMDocument");_data.async=false;_data.load(pFile+'?'+Date.parse(new Date));} |
---|
| 15 | _FILES[pFile]=_data;} |
---|
[3102] | 16 | return _FILES[pFile];} |
---|
| 17 | function _parse() |
---|
| 18 | {if(arguments.length==1) |
---|
| 19 | {pXML=_xml('root');pXSL=arguments[0];} |
---|
| 20 | else |
---|
| 21 | {pXML=arguments[0];pXSL=arguments[1];} |
---|
| 22 | switch(typeof pXML) |
---|
| 23 | {case'object':break;case'string':if(pXML.indexOf('<')==0) |
---|
| 24 | pXML=_convert(pXML);else |
---|
| 25 | pXML=_load.call(this,pXML);break;default:return{'error':'invalid xml'}} |
---|
| 26 | switch(typeof pXSL) |
---|
| 27 | {case'object':break;case'string':pXSL=_load.call(this,pXSL);break;default:return{'error':'invalid xsl'}} |
---|
| 28 | var fragment=null;if(window.XSLTProcessor) |
---|
| 29 | {var xslProc=new XSLTProcessor();xslProc.importStylesheet(pXSL);if((arguments.length==3)&&(typeof arguments[2]=='object')) |
---|
| 30 | {var params=arguments[2];for(var i in params) |
---|
| 31 | if(params[i]&¶ms[i].constructor!=Function) |
---|
| 32 | xslProc.setParameter(null,String(i),String(params[i]));} |
---|
| 33 | fragment=xslProc.transformToFragment(pXML,document);var aux=document.createElement("div");aux.appendChild(fragment);fragment=aux.innerHTML;} |
---|
| 34 | else |
---|
| 35 | {var xslTemplate=new ActiveXObject("MSXML2.XSLTemplate");xslTemplate.stylesheet=pXSL;var xslProc=xslTemplate.createProcessor();xslProc.input=pXML;if((arguments.length==3)&&(typeof arguments[2]=='object')) |
---|
| 36 | {var params=arguments[2];for(var i in params) |
---|
| 37 | if(params[i]&¶ms[i].constructor!=Function) |
---|
| 38 | {xslProc.addParameter(String(i),String(params[i]),'');}} |
---|
| 39 | xslProc.transform();fragment=xslProc.output;} |
---|
| 40 | return fragment;} |
---|
| 41 | function _xml() |
---|
| 42 | {var a=false;if(document.implementation.createDocument) |
---|
| 43 | a=document.implementation.createDocument("","",null);else if(ActiveXObject) |
---|
| 44 | a=new ActiveXObject("Msxml2.DOMDocument");if(arguments.length==1&&typeof arguments[0]=='string') |
---|
| 45 | a.appendChild(a.createElement(arguments[0]));return a;} |
---|
| 46 | function xtools() |
---|
| 47 | {var _argv=arguments;this._PATH=(_argv.length>0)?_argv[0]:'';if(this._PATH!=''&&this._PATH.lastIndexOf('/')!=(this._PATH.length-1)) |
---|
| 48 | this._PATH+='/';} |
---|
| 49 | xtools.prototype.convert=_convert;xtools.prototype.load=_load;xtools.prototype.parse=_parse;xtools.prototype.xml=_xml;window.xtools=xtools;})(); |
---|