⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsl-transformer.js

📁 联合国农粮署牵头开发的geonetwork源代码最新版
💻 JS
字号:
//=====================================================================================//===//=== Applies an XSL transformation to an input XML and uses localized strings//===//=== Needs:	sarissa.js//=== 			kernel.js//===//=====================================================================================function XSLTransformer(stylesheet, xmlLoader){	var loader  = xmlLoader;	var xslProc = null	var xslDoc  = null;	var xslSheet= stylesheet;		//--- load stylesheet	ker.loadMan.acquire();	ker.loadURL(Env.url +'/xsl/'+ stylesheet, ker.wrap(this, function(t)	{		try		{			xslDoc = t.responseXML;						if (window.ActiveXObject == null)			{				xslProc = new XSLTProcessor();				xslProc.importStylesheet(xslDoc);			}		}		catch(e)		{			alert('error on : '+Env.url +'/xsl/'+ stylesheet+'\n'+t.responseText);		}		ker.loadMan.release();	}));//=====================================================================================//===//=== API methods//===//=====================================================================================this.transform = function(node){	var doc = buildDocument(node);		if (window.ActiveXObject)	{		try		{			var text   = doc.transformNode(xslDoc);			var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');						xmlDoc.async = 'false';					if (xmlDoc.loadXML(text) == false)				throw 'Parse error for:\n\n'+text;					//--- convert XML result into a DOM result			return xml.convert(xmlDoc);		}		catch(e)		{			throw 'Cannot transform with stylesheet.\nFile : '+ xslSheet;		}	}	else		return xslProc.transformToDocument(doc);}//=====================================================================================this.transformToText = function(node){	var doc = buildDocument(node);		if (window.ActiveXObject)	{		try		{			return doc.transformNode(xslDoc);		}		catch(e)		{			throw 'Cannot transform with stylesheet.\nFile : '+ xslSheet;		}	}	else		return xml.toString(xslProc.transformToDocument(doc));}//=====================================================================================//===//=== Private methods//===//=====================================================================================function buildDocument(node){	var strings = (!loader) 						? Sarissa.getDomDocument().createElement('strings')						: loader.getNode();	var doc  = Sarissa.getDomDocument();	var root = doc.createElement('root');		doc .appendChild(root);	root.appendChild(node.cloneNode(true));	root.appendChild(createEnv(doc));	root.appendChild(strings.cloneNode(true));		return doc;}//=====================================================================================function createEnv(doc){	var env      = doc.createElement('env');		var elUrl    = doc.createElement('url');	var elLocUrl = doc.createElement('locUrl');	var elLocSer = doc.createElement('locService');	var elLang   = doc.createElement('language');		env.appendChild(elUrl);	env.appendChild(elLocUrl);	env.appendChild(elLocSer);	env.appendChild(elLang);		elUrl   .appendChild(doc.createTextNode(Env.url));	elLocUrl.appendChild(doc.createTextNode(Env.locUrl));	elLocSer.appendChild(doc.createTextNode(Env.locService));	elLang  .appendChild(doc.createTextNode(Env.lang));		return env;}//=====================================================================================}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -