在firefox中,如何用Javascript 为xml文件分配xsl模板,并另外加入自定义的参数?

wuan 2008-09-28 05:31:23
在IE中的实现已经有了,代码如下
<script type="text/javascript" language="JavaScript">
// Function loadSource
// ---------------------------------------------------------------
// This functions loads an XML file as an ActiveXObject
// Gets a path to an XML file as parameter
// Returns the ActiveXObject
function loadSource(XMLFile) {
var xmlDoc=new ActiveXObject("Msxml2.FreeThreadedDOMDocument.5.0");
xmlDoc.async=false;
xmlDoc.load(XMLFile);
return xmlDoc;
}

// Function getProcessor
// ----------------------------------------------------------------
// This function loads an XSL file and creates a processor
// Gets a path to an XSL file as parameter
// Returns the processor
function getProcessor(XSLFile){
var xslDoc=new ActiveXObject("Msxml2.FreeThreadedDOMDocument.5.0");
var xslTemplate=new ActiveXObject("Msxml2.XSLTemplate.5.0");
xslDoc.async=false;
xslDoc.load(XSLFile);
xslTemplate.stylesheet=xslDoc;
xslProcessor=xslTemplate.createProcessor();
return xslProcessor;
}

// Function transformData
// -----------------------------------------------------------------
// This function transforms an XML file with a processor
// Gets an ActiveXObject (loaded XML file) and the processor as parameters
// Returns a result document (as an ActiveXDocument)
function transformData(source,processor){
var resultDoc=new ActiveXObject("MSXML.DOMDocument");
processor.input=source;
processor.output=resultDoc;
processor.transform();
return resultDoc;
}

// Function loadNewXSL
// -----------------------------------------------------------------
// This function calls the other functions - loading XML file
// creating processor, adding a parameter, transforming the XML file
// and placing the result code in the document
// Gets the path to an XSL file and a parameter as paramters
function loadNewXSL(XSLFile, param){
var srcDoc=loadSource("results.xml");
var processor=getProcessor(XSLFile);
processor.addParameter("unit", param);
var rsltDoc=transformData(srcDoc,processor);
target.innerHTML=rsltDoc.xml;
}
</script>

这里用Msxml2.XSLTemplate.5.0加载xml和xsl,然后输出到MSXML.DOMDocument中。

很显然,这个只能在IE上用,在Firefox上有没有实现相应功能的方法能?
...全文
150 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qiaorui 2008-09-29
  • 打赏
  • 举报
回复
if (document.implementation && document.implementation.createDocument) {
var xmldoc = document.implementation.createDocument("","",null);
xmldoc.async = false;
xmldoc.load(xmlurl);

var xsldoc = document.implementation.createDocument("","",null);
xsldoc.async = false;
xsldoc.load(xslurl);

...//把XSL当作XML(实际上就是XML)来处理,动态修改unit以实现addParameter的效果

var xslt = new XSLTProcessor();
xslt.importStylesheet(xsldoc);
//var result = xslt.transformToFragment(xmldoc,document);//返回一个DOM片断
var result = xslt.transformToDocument(xmldoc);//返回一个XMLDocument对象

$(eOutput).innerHTML=new XMLSerializer().serializeToString(result);
}
街头小贩 2008-09-28
  • 打赏
  • 举报
回复
DC学习!
無名VF 2008-09-28
  • 打赏
  • 举报
回复
SF UP

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧