var resultHtml = xsltProcessor.transformToDocument(xmlDoc);var   oXmlSerializer   =   new   XMLSerializer(); //add  
 
divGuestbookPanel.innerHTML = oXmlSerializer.serializeToString(resultHtml);//change  

解决方案 »

  1.   

    你的代码有问题,第一,在载入xml的时候,要加上addEventListener("load",func,false)处理,否则你的xml有可能无法显示,因为xml还没有载入完,(xmlXsl也是同理)第二,transformToDocument返回的是HTMLDocument对象,第三,由第二点可得,所以你在页面处理时DIVElement出现的是Object类型,这时需要序列化
    用XMLSerializer经过处理,就可以用了。
      

  2.   

    代码如下:<div id="demo"></div>
    <script type="text/javascript">
    //<![CDATA[
    function initialize() {
      var xmlDoc;
      var xslDoc;  // 判断浏览器的类型
      if((typeof document.implementation != 'undefined')&&(typeof document.implementation.createDocument!='undefined'))
      {    
        // 支持Mozilla浏览器
        
        xmlDoc = document.implementation.createDocument("", "", null);  
        xslDoc = document.implementation.createDocument("", "", null);
        
          // 定义XSLTProcessor对象
        function loadDoc() {
          xslDoc.addEventListener("load",loadXsl,false);
          xslDoc.load("foo.xsl");
        }
        function loadXsl() {
          
          divGuestbookPanel = document.getElementById("demo");
          var xsltProcessor = new XSLTProcessor();
          xsltProcessor.importStylesheet(xslDoc);  
          var resultHtml = xsltProcessor.transformToDocument(xmlDoc);
          var oXmlSerializer = new XMLSerializer()
          divGuestbookPanel.innerHTML = oXmlSerializer.serializeToString(resultHtml)
        }    xmlDoc.addEventListener("load",loadDoc,false);
        xmlDoc.load("foo.xml");                
      }
    }onload = initialize;//]]>
    </script>
      

  3.   

    还有一点注意,你的xsl注意输出格式。做成一个function类型,你测试一下。<div id="demo"></div>
    <script type="text/javascript">
    //<![CDATA[
    function initialize(HTMLElementStr, xmlFileStr, xslFileStr) {
      var xmlDoc;
      var xslDoc;  // 判断浏览器的类型
      if((typeof document.implementation != 'undefined')&&(typeof document.implementation.createDocument!='undefined'))
      {    
        // 支持Mozilla浏览器
        
        xmlDoc = document.implementation.createDocument("", "", null);  
        xslDoc = document.implementation.createDocument("", "", null);
        
          // 定义XSLTProcessor对象
        function loadDoc() {
          xslDoc.addEventListener("load",loadXsl,false);
          xslDoc.load(xslFileStr);
        }
        function loadXsl() {      
          divGuestbookPanel = document.getElementById(HTMLElementStr);
          var xsltProcessor = new XSLTProcessor();
          xsltProcessor.importStylesheet(xslDoc);  
          var resultHtml = xsltProcessor.transformToDocument(xmlDoc);
          var oXmlSerializer = new XMLSerializer()
          divGuestbookPanel.innerHTML = oXmlSerializer.serializeToString(resultHtml)
        }    xmlDoc.addEventListener("load",loadDoc,false);
        xmlDoc.load(xmlFileStr);                
      }
    }onload = function(){initialize("demo","foo.xml","foo.xsl");}//]]>
    </script>