 function transformaExplorer(plantillaXSL, ficheroXML)  
 {   
	/*Load XSL*/  
	var objXSLT = new ActiveXObject("MSXML2.FreeThreadedDomDocument")   
	objXSLT.async = false   
	objXSLT.load(plantillaXSL)   

	/*create a compiled XSL-object*/  
	var objCompiled = new ActiveXObject("MSXML2.XSLTemplate")   
	objCompiled.stylesheet = objXSLT.documentElement   

	/*create XSL-processor */  
	var objXSLProc = objCompiled.createProcessor()   

	/* Load XML */  
	var objXML = new ActiveXObject("MSXML2.FreeThreadedDomDocument")   
	objXML.async = false   
	objXML.load(ficheroXML)   

	/*input for XSL-processor */   
	objXSLProc.input = objXML   

	/* transform */  
	objXSLProc.transform()   

	/* display */   
	return objXSLProc.output
 }
 
 function newDocument(rootTagName, namespaceURL)   
 {   
 	if (!rootTagName) rootTagName = "";   
 	if (!namespaceURL) namespaceURL = "";   
 	if (document.implementation && document.implementation.createDocument)   
 	{   
 		// This is the W3C standard way to do it   
 		return document.implementation.createDocument(namespaceURL,   
 		rootTagName, null);   
 	}   
 	else   
 	{   
 		// This is the IE way to do it   
 		// Create an empty document as an ActiveX object   
 		// If there is no root element, this is all we have to do   
 		var doc = new ActiveXObject("MSXML2.DOMDocument");  
 		// If there is a root tag, initialize the document  
 		if (rootTagName)   
 		{   
 			// Look for a namespace prefix    
 			var prefix = "";    
 			var tagname = rootTagName;    
 			var p = rootTagName.indexOf(':');    
 			if (p != -1)    
 			{   
 				prefix = rootTagName.substring(0, p);   
 				tagname = rootTagName.substring(p+1);   
 			}   
 			// If we have a namespace, we must have a namespace prefix   
 			// If we don't have a namespace, we discard any prefix   
 			if (namespaceURL)    
 			{   
 				if (!prefix) prefix = "a0"; // What Firefox uses   
 			}   
 			else prefix = "";   
 			// Create the root element (with optional namespace) as a   
 			// string of text   
 			var text = "<" + (prefix?(prefix+":"):"") + tagname + (namespaceURL?(" xmlns:" + prefix + '="' + namespaceURL +'"'):"") +"/>";   
 			// And parse that text into the empty document   
 			doc.loadXML(text);   
 		}   
 		return doc;   
 	}  }   
 function load(url)    
 {   
 	// Create a new document with the previously defined function   
 	var xmldoc = newDocument( );   
 	xmldoc.async = false; // We want to load synchronously   
 	xmldoc.load(url); // Load and parse   
 	return xmldoc; // Return the document   
 }   
 function serialize(node)   
 {   
 	if (typeof XMLSerializer != "undefined")   
 	{   
 		var ser = new XMLSerializer();   
 		return ser.serializeToString(node);   
 	}   
 	else if (node.xml)    
 	{   
 		return node.xml;   
 	}   
 	return "";   
 }
 function staticLoadScript(url)   
 {   
 document.write('<script src="', url, '" type="text/JavaScript"><\/script>');   
 }
 
 function convierteEntidadesHTML(cadena)
 {
		cadena = cadena.replace(/ /g, "&nbsp;");
		cadena = cadena.replace(/¡/g, "&iexcl;");   
		cadena = cadena.replace(/¢/g, "&cent;");    
		cadena = cadena.replace(/£/g, "&pound;");   
		cadena = cadena.replace(/¤/g, "&curren;");  
		cadena = cadena.replace(/¥/g, "&yen;");     
		cadena = cadena.replace(/¦/g, "&brvbar;");  
		cadena = cadena.replace(/§/g, "&sect;");    
		cadena = cadena.replace(/¨/g, "&uml;");     
		cadena = cadena.replace(/©/g, "&copy;");    
		cadena = cadena.replace(/ª/g, "&ordf;");    
		cadena = cadena.replace(/«/g, "&laquo;");   
		cadena = cadena.replace(/¬/g, "&not;");     
		cadena = cadena.replace(/­/g, "&shy;");     
		cadena = cadena.replace(/®/g, "&reg;");     
		cadena = cadena.replace(/¯/g, "&macr;");    
		cadena = cadena.replace(/°/g, "&deg;");     
		cadena = cadena.replace(/±/g, "&plusmn;");  
		cadena = cadena.replace(/²/g, "&sup2;");    
		cadena = cadena.replace(/³/g, "&sup3;");    
		cadena = cadena.replace(/´/g, "&acute;");   
		cadena = cadena.replace(/µ/g, "&micro;");   
		cadena = cadena.replace(/¶/g, "&para;");    
		cadena = cadena.replace(/·/g, "&middot;");  
		cadena = cadena.replace(/¸/g, "&cedil;");   
		cadena = cadena.replace(/¹/g, "&sup1;");    
		cadena = cadena.replace(/º/g, "&ordm;");    
		cadena = cadena.replace(/»/g, "&raquo;");   
		cadena = cadena.replace(/¼/g, "&frac14;");  
		cadena = cadena.replace(/½/g, "&frac12;");  
		cadena = cadena.replace(/¾/g, "&frac34;");  
		cadena = cadena.replace(/¿/g, "&iquest;");  
		cadena = cadena.replace(/À/g, "&Agrave;");  
		cadena = cadena.replace(/Á/g, "&Aacute;");  
		cadena = cadena.replace(/Â/g, "&Acirc;");   
		cadena = cadena.replace(/Ã/g, "&Atilde;");  
		cadena = cadena.replace(/Ä/g, "&Auml;");    
		cadena = cadena.replace(/Å/g, "&Aring;");   
		cadena = cadena.replace(/Æ/g, "&AElig;");   
		cadena = cadena.replace(/Ç/g, "&Ccedil;");  
		cadena = cadena.replace(/È/g, "&Egrave;");  
		cadena = cadena.replace(/É/g, "&Eacute;");  
		cadena = cadena.replace(/Ê/g, "&Ecirc;");   
		cadena = cadena.replace(/Ë/g, "&Euml;");    
		cadena = cadena.replace(/Ì/g, "&Igrave;");  
		cadena = cadena.replace(/Í/g, "&Iacute;");  
		cadena = cadena.replace(/Î/g, "&Icirc;");   
		cadena = cadena.replace(/Ï/g, "&Iuml;");    
		cadena = cadena.replace(/Ð/g, "&ETH;");     
		cadena = cadena.replace(/Ñ/g, "&Ntilde;");  
		cadena = cadena.replace(/Ò/g, "&Ograve;");  
		cadena = cadena.replace(/Ó/g, "&Oacute;");  
		cadena = cadena.replace(/Ô/g, "&Ocirc;");   
		cadena = cadena.replace(/Õ/g, "&Otilde;");  
		cadena = cadena.replace(/Ö/g, "&Ouml;");    
		cadena = cadena.replace(/×/g, "&times;");   
		cadena = cadena.replace(/Ø/g, "&Oslash;");  
		cadena = cadena.replace(/Ù/g, "&Ugrave;");  
		cadena = cadena.replace(/Ú/g, "&Uacute;");  
		cadena = cadena.replace(/Û/g, "&Ucirc;");   
		cadena = cadena.replace(/Ü/g, "&Uuml;");    
		cadena = cadena.replace(/Ý/g, "&Yacute;");  
		cadena = cadena.replace(/Þ/g, "&THORN;");   
		cadena = cadena.replace(/ß/g, "&szlig;");   
		cadena = cadena.replace(/à/g, "&agrave;");  
		cadena = cadena.replace(/á/g, "&aacute;");  
		cadena = cadena.replace(/â/g, "&acirc;");   
		cadena = cadena.replace(/ã/g, "&atilde;");  
		cadena = cadena.replace(/ä/g, "&auml;");    
		cadena = cadena.replace(/å/g, "&aring;");   
		cadena = cadena.replace(/æ/g, "&aelig;");   
		cadena = cadena.replace(/ç/g, "&ccedil;");  
		cadena = cadena.replace(/è/g, "&egrave;");  
		cadena = cadena.replace(/é/g, "&eacute;");  
		cadena = cadena.replace(/ê/g, "&ecirc;");   
		cadena = cadena.replace(/ë/g, "&euml;");    
		cadena = cadena.replace(/ì/g, "&igrave;");  
		cadena = cadena.replace(/í/g, "&iacute;");  
		cadena = cadena.replace(/î/g, "&icirc;");   
		cadena = cadena.replace(/ï/g, "&iuml;");    
		cadena = cadena.replace(/ð/g, "&eth;");     
		cadena = cadena.replace(/ñ/g, "&ntilde;");  
		cadena = cadena.replace(/ò/g, "&ograve;");  
		cadena = cadena.replace(/ó/g, "&oacute;");  
		cadena = cadena.replace(/ô/g, "&ocirc;");   
		cadena = cadena.replace(/õ/g, "&otilde;");  
		cadena = cadena.replace(/ö/g, "&ouml;");    
		cadena = cadena.replace(/÷/g, "&divide;");  
		cadena = cadena.replace(/ø/g, "&oslash;");  
		cadena = cadena.replace(/ù/g, "&ugrave;");  
		cadena = cadena.replace(/ú/g, "&uacute;");  
		cadena = cadena.replace(/û/g, "&ucirc;");   
		cadena = cadena.replace(/ü/g, "&uuml;");    
		cadena = cadena.replace(/ý/g, "&yacute;");  
		cadena = cadena.replace(/þ/g, "&thorn;");   
		cadena = cadena.replace(/ÿ/g, "&yuml;");    
		cadena = cadena.replace(/Œ/g, "&OElig;");   
		cadena = cadena.replace(/œ/g, "&oelig;");   
		cadena = cadena.replace(/Š/g, "&Scaron;");  
		cadena = cadena.replace(/š/g, "&scaron;");  
		cadena = cadena.replace(/Ÿ/g, "&Yuml;");    
		cadena = cadena.replace(/ƒ/g, "&fnof;");    
		cadena = cadena.replace(/ˆ/g, "&circ;");    
		cadena = cadena.replace(/˜/g, "&tilde;");   
		cadena = cadena.replace(/µ/g, "&mu;");      
		cadena = cadena.replace(/‘/g, "&lsquo;");   
		cadena = cadena.replace(/’/g, "&rsquo;");   
		cadena = cadena.replace(/‚/g, "&sbquo;");   
		cadena = cadena.replace(/“/g, "&ldquo;");   
		cadena = cadena.replace(/”/g, "&rdquo;");   
		cadena = cadena.replace(/„/g, "&bdquo;");   
		cadena = cadena.replace(/†/g, "&dagger;");  
		cadena = cadena.replace(/‡/g, "&Dagger;");  
		cadena = cadena.replace(/•/g, "&bull;");    
		cadena = cadena.replace(/…/g, "&hellip;");  
		cadena = cadena.replace(/‰/g, "&permil;");  
		cadena = cadena.replace(/€/g, "&euro;");    
		cadena = cadena.replace(/™/g, "&trade;");   
		cadena = cadena.replace(/Ø/g, "&empty;");   
		cadena = cadena.replace(/~/g, "&sim;");     
		cadena = cadena.replace(/˜/g, "&asymp;");   

		return cadena;
 }