/**
* 把XML和XSL组装成HTML
* 需要XHConn2对象(XHConn2.js)
*/
function assembleXML(xmlContent, xslContent){
if (window.ActiveXObject){
return assembleXML_IE(xmlContent, xslContent);
}else if(document.implementation && document.implementation.createDocument){
return assembleXML_FF(xmlContent, xslContent);
} else {
return null;
}
}
function assembleXMLUrl(xmlUrl, xslUrl){
if (window.ActiveXObject){
return assembleXMLUrl_IE(xmlUrl, xslUrl)
}else if(document.implementation && document.implementation.createDocument){
return assembleXMLUrl_FF(xmlUrl, xslUrl)
} else {
return null;
}
}
/**
* IE实现
*/
function assembleXML_IE(xmlContent, xslContent){
try{
var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
xml_doc.async = false;
xml_doc.loadXML(xmlContent);
var xsl_doc = new ActiveXObject("Microsoft.XMLDOM");
xsl_doc.async=false;
xsl_doc.loadXML(xslContent);
var result = xml_doc.transformNode(xsl_doc);
return result;
} catch(e){
return null;
}
}
function assembleXMLUrl_IE(xmlUrl, xslUrl){
try{
var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
xml_doc.async = false;
xml_doc.load(xmlUrl);
var xsl_doc = new ActiveXObject("Microsoft.XMLDOM");
xsl_doc.async=false;
xsl_doc.load(xslUrl);
var result = xml_doc.transformNode(xsl_doc);
return result;
} catch(e){
return null;
}
}
/**
* Firefox/Opera实现
*/
function assembleXML_FF(xmlContent, xslContent){
try {
// 在Firefox的XML DOM实现中,并没有loadXML()方法,不过通过Firefox中的DOMParser类可以模拟loadXML()的行为
var oParser = new DOMParser();
var xmlDoc = oParser.parseFromString(xmlContent,"text/xml");
var xslDoc = oParser.parseFromString(xslContent,"text/xml");
// 定义XSLTProcessor对象
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// transformToDocument方式
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = new XMLSerializer();
var result = xmls.serializeToString(result);
return result;
}
catch(e) {
return null;
}
}
function assembleXMLUrl_FF(xmlUrl, xslUrl){
try{
var xmlDoc = document.implementation.createDocument("", "", null);
xmlDocasync = false;
xmlDoc.load(xmlFile);
var xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = false;
xslDoc.load(xsltFile);
// 定义XSLTProcessor对象
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// transformToDocument方式
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = new XMLSerializer();
var result = xmls.serializeToString(result);
return result;
} catch(e){
return null;
}
}