关于第二个问题可以使用JS进行正则转换:<div id="tt">
<table width="100">
<tr><td>aaaaaaaaaaaaaaaaaa</td></tr>
</table>
</div><input type="button" name="but" value="test" onclick="trans(tt.innerHTML)">
<SCRIPT>
function trans(str)
{
  alert(str.replace(/(\s+\w+=)([^\s<>]+)/g, "$1\"$2\""));
}
</SCRIPT>

解决方案 »

  1.   

    关于第一个问题在IE里面有:var a = new Object(MSXML2.XMLHTTP)
    var b = new Object(Msxml2.DOMDocument.3.0)
    var c = new Object(Msxml2.DOMDocument)如果考虑到兼容的问题可能要变通一下处理----放到后台处理了。
      

  2.   

    谢谢 liu76xt((网事随逢)) 的正则表达式,我正准备找正则表达式处理该问题。另外请问,对于Firefox,需要xml有关对象应该如何创建?其实IE6和Firefox1.0都是支持直接察看带有XSLT的XML的(例如MSN的聊天记录),然而这需要XML和XSLT都是现成的文件,有没有办法把保存在脚本的string的XML和XSLT交给浏览器,让它们用自身默认的XML Parser进行处理然后返回结果?
      

  3.   

    ,没有用过Firefox,呵呵。不过我想既然“然而这需要XML和XSLT都是现成的文件,有没有办法把保存在脚本的string的XML和XSLT交给浏览器”,说明微软还是不会把接口轻易开放给用户,至少暂时不会[但是已经提供了文件接口],,个人认为XML 解析器还是自己写的好。--就知道这么多了,,,
      

  4.   

    liu76xt((网事随逢)) ,您给的RegEx在对已经符合XHTML规范的innerHTML进行处理的时候还是会继续添加双引号,也就是说变成双重双引号,请问能否帮忙写一个RegEx能够对于已规范的XHTML就不做处理?
      

  5.   

    var style = new ActiveXObject("Microsoft.XMLDOM");
    style.load("LstA_49.xsl");
    strTransform = xmlDoc.transformNode(style.documentElement);
    alert(strTransform);
      

  6.   

    请问 ttyp(@http://www.cnblogs.com/ttyp/) ,您的方式适用于哪些浏览器?真的可以直接把一个HTML Element放进去Transform吗?
      

  7.   

    终于做完了,谢谢各位的支持。下面贴上代码,在IE6和Firefox1.0测试过,不知道其他浏览器的支持如何,有兴趣的话大家来测试下,希望能够改进到支持更多的浏览器。(写这段代码在混淆了的Google Maps js里面搜索了一阵,其实也不太难搜索。)  function processXslt(sXml, sXslt)
      {
        if(window.navigator.userAgent.toLowerCase().indexOf('msie') != -1)
          return processXsltForIE(sXml, sXslt);
        if(window.navigator.userAgent.toLowerCase().indexOf('firefox') != -1)
          return processXsltForFirefox(sXml, sXslt);
      }
      
      function processXsltForIE(sXml, sXslt)
      {
        var oXslt = new ActiveXObject("Msxml2.XSLTemplate.5.0");
        var oXsltDocument = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.5.0");
        var oXsltProcessor;
        oXsltDocument.async = false;
        oXsltDocument.resolveExternals = false;
        oXsltDocument.loadXML(sXslt);
        if (oXsltDocument.parseError.errorCode != 0)
        {
          ///todo: return oXsltDocument.parseError;
          alert("You have error " + myErr.reason);
        }
        else
        {
          oXslt.stylesheet = oXsltDocument;
          var oXmlDocument = new ActiveXObject("Msxml2.DOMDocument.5.0");
          oXmlDocument.async = false;
          oXmlDocument.resolveExternals = false;
        }
        oXmlDocument.loadXML(sXml);
        if (oXmlDocument.parseError.errorCode != 0) {
          ///todo: return oXmlDocument.parseError;
          alert("You have error " + myErr.reason);
        }
        else
        {
          oXsltProcessor = oXslt.createProcessor();
          oXsltProcessor.input = oXmlDocument;
          oXsltProcessor.transform();
          return(oXsltProcessor.output);
        }
      }
      
      function processXsltForFirefox(sXml, sXslt)
      {
        var oDomParser = new DOMParser();
        var oXsltProcessor = new window.XSLTProcessor();
        var oXsltDocument = document.implementation.createDocument("", "", null);
        oXsltDocument=oDomParser.parseFromString(sXslt, "text/xml")
        oXsltProcessor.importStylesheet(oXsltDocument);
        var oXmlDocument = document.implementation.createDocument("", "", null);
        oXmlDocument=oDomParser.parseFromString(sXml, "text/xml")
        var oResultDocument = document.implementation.createDocument("", "", null);
        oResultDocument = oXsltProcessor.transformToDocument(oXmlDocument);
        var oXmlSerializer = new XMLSerializer()
        return oXmlSerializer.serializeToString(oResultDocument);
      }