在firefox中,为什么语句document.write(xml.transformNode(xsl));会出错呢, 在IE中是可以执行的
<script language="javascript">
   try
   {
    var xml=new ActiveXObject("microsoft.xmldom");
var xsl=new ActiveXObject("microsoft.xmldom");
   }
   catch(e)
   {
    try
    {
var xml=document.implementation.createDocument("","",null);
var xsl=document.implementation.createDocument("","",null);
    }
    catch (e)
    {
    alert(e.message);
    }
   }
   try
   {
xml.async=false;
xml.load("student.xml");
xsl.async=false;
xsl.load("student.xsl");
   }
   catch (e)
   {
    alert(e.message);
   }
document.write(xml.transformNode(xsl));
  </script>

解决方案 »

  1.   

    Mozilla中的xslt支持并没有这个方法,不知道你对跨浏览器作处理了没有---就是你是否手工准备这个方法。给你给个js高级程序设计里面的给的跨浏览器方法
    Node.prototype.transformNode = function (oXslDom) {
                    
                        var oProcessor = new XSLTProcessor();
                        oProcessor.importStylesheet(oXslDom);
                    
                        var oResultDom = oProcessor.transformToDocument(this);
                        var sResult = oResultDom.xml;
                    
                        if (sResult.indexOf("<transformiix:result") > -1) {
                            sResult = sResult.substring(sResult.indexOf(">") + 1, sResult.lastIndexOf("<"));
                        }
                    
                        return sResult;                
                    };