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) |
---|
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;} |
---|
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;})(); |
---|