有没有能兼容谷歌和FF,IE,js下的XML解析代码贴一个,谢谢,
下面这个好象不能兼容谷歌,大家看看是不是,怎么改改
function parseXML()
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
  {
  xmlDoc=document.implementation.createDocument("","",null);
  }
  catch(e)
  {
  alert(e.message);
  return;
  }
  }
xmlDoc.async=false;
xmlDoc.load("note.xml");
}

解决方案 »

  1.   

    用ajax来加载xml文件,然后使用responseXML属性得到xmldomgoogle同上面的类似代码暂时不知道用哪个对象来加载,你可以看下google的api是否有介绍
      

  2.   

    var xml; 
    if(window.XMLHttpRequest) 

    xml = new XMLHttpRequest();//  非IE浏览器请求
    }
    else   if(window.ActiveXObject) 

    try{
    xml = new ActiveXObject("Microsoft.XMLDOM");  //新IE请求对象
    }
    catch(e1){ 
    try{ 
    xml= new   ActiveXObject("Msxml2.XMLDOM");//   老版IE 请求对象

    catch(e2) 

    alert("无法识别的浏览器");
    return false;
    }
    }
    }
      

  3.   


    function showHint()
    {
      xmlHttp=GetXmlHttpObject()
      
      if (xmlHttp==null)
        {
        alert ("您的浏览器不支持AJAX!");
        return;
        }var url="myfile.xml";
    url=url+"?q="+str;//??
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);//??
    xmlHttp.send(null);//??
    }
    function GetXmlHttpObject()
    {
      var xmlHttp=null;
      try
        {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
      catch (e)
        {
        // Internet Explorer
        try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e)
          {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        }
      return xmlHttp;
    }function stateChanged() 

      if (xmlHttp.readyState==4)
      { 
     var OKDom=xmlHttp.responseXML;
      }
    }AJAX responseXML 不会用,请帮看下,之后通过OKDom.getElementsByTagName("name")等DOM之类的方法就可以操做XML吗?
      

  4.   

    function showHint()
    {
      xmlHttp=GetXmlHttpObject()
      
      if (xmlHttp==null)
        {
        alert ("您的浏览器不支持AJAX!");
        return;
        }var url="myfile.xml";
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);//这一行还要吗
    xmlHttp.send(null);//这一行还要吗
    }
      

  5.   


    function parseXML(){
    var xml;  
    if(window.XMLHttpRequest)  
    {  
    xml = new XMLHttpRequest();// 非IE浏览器请求
    }
    else if(window.ActiveXObject)  
    {  
    try{
    xml = new ActiveXObject("Microsoft.XMLDOM"); //新IE请求对象
    }
    catch(e1){  
    try{  
    xml= new ActiveXObject("Msxml2.XMLDOM");// 老版IE 请求对象
    }  
    catch(e2)  
    {  
    alert("无法识别的浏览器");
    return false;
    }
    }
    }xmlDoc.async=false;
    xmlDoc.load("notes.xml");}
    写完整是这样吗?
      

  6.   


    是的~~不过你最好加个时间戳防止缓存,而不是加参数,xml不是动态页
    var url="myfile.xml?_dc="+new Date().getTime();//加时间戳防止IE下的缓存
    //url=url+"?q="+str;//??不需要这句
      

  7.   

    还没成功,再帮我看看吧,谢了
    myfile.xml:<?xml version="1.0" encoding="gb2312"?>
    <note>
    <jr>
    <u>abcde</u>
    </jr>
    </note>
    function parseXML()//谷歌之外的浏览器执行这个可以处理DOM
    {
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
        xmlDoc=document.implementation.createDocument("","",null);
        }
      catch(e)
        {
    return  qajax() //谷歌浏览器
        //alert(e.message);
        //return;
        }
      }
    xmlDoc.async=false;
    xmlDoc.load("myfile.xml");
    var MSG=xmlDoc.getElementsByTagName("u")[0].childNodes[0].nodeValue;
    alert(MSG);
    }
    function qajax()
    {
      xmlHttp=GetXmlHttpObject()
      
      if (xmlHttp==null)
        {
        alert ("您的浏览器不支持AJAX!");
        return;
        }var url="myfile.xml?_dc="+new Date().getTime();
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);//
    xmlHttp.send(null);//
    }
    function GetXmlHttpObject()
    {
      var xmlHttp=null;
      try
        {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
      catch (e)
        {
        // Internet Explorer
        try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e)
          {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        }
      return xmlHttp;
    }function stateChanged() 

      if (xmlHttp.readyState==4)
      { 
     var xmlDoc=xmlHttp.responseXML;
     var MSG=xmlDoc.getElementsByTagName("u")[0].childNodes[0].nodeValue;
     alert(MSG);
      }
    }再次谢过
      

  8.   


    你的代码我在google浏览器下测试没问题啊。是不是你请求的xml文件路径不对啊??function stateChanged() 

      if (xmlHttp.readyState==4)
      { 
    if(xmlHttp.status==200||xmlHttp.status==0){
     var xmlDoc=xmlHttp.responseXML;
     var MSG=xmlDoc.getElementsByTagName("u")[0].childNodes[0].nodeValue;
     alert(MSG);
    }
    else alert('发生错误'+xmlHttp.status);
      }
    }  需要注意的一个问题是在IE下,使用ajax请求xml文件时,如果未通过http协议来访问,而是双击运行或者拖拽进浏览器来访问时,IE下生成不了XMLDOM。
      

  9.   

    jquerye有操做XML文件的东西吗?我找了找不到,知道的话贴出来一下嘛,
    关于AJAX的,
    找了个看得懂的如下,但是没有responseXML属性,如何全部加载,怎么用到这里呢?
    还有哪个jquery类似的函数可以用发出来个说明一下噻
    $.ajax({
       type: "POST",
       url: "some.php",
       data: "name=John&location=Boston",
       success: function(msg){
         alert( "Data Saved: " +eval(msg));
       }
    }); 
      

  10.   

    哪就奇怪了:
    我这是只是在谷歌浏览器下就不行,没反应,我是把三个文件一起放在相同的目录下打开html文件运行的,
    这是html文件,是不是html有问题:<head>
    <script type="text/javascript" language="javascript" src="a.js">
    </script>
    <script type = "text/javascript" language="javascript">
    window.onload = function() {
     parseXML();}
    </script>
    </head>
    <body>
    </body>
    </html>