/**
 * 把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;
	}
}