本帖最后由 lba8610 于 2011-08-18 18:05:33 编辑

解决方案 »

  1.   

    应该是数组下标不连续引起的。
    xmlArray[i]=v;
    改为:
    xmlArray.push(v);
      

  2.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title> 无标题文档</title>
    </head>
    <body>
    <script type="text/javascript">
    //var xmlAdder="http://www.51db.com.cn/gamesxml.xml";
    var xmlAdder="http://www.51db.com.cn/gamesxml.xml";          //在FF下解析远程xml文件好像要用ajax吧
    function getXmlDocument(xmlFile){ 
    var xmlDoc;
    if(window.ActiveXObject){
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    }else if(document.implementation && document.implementation.createDocument){
      xmlDoc=document.implementation.createDocument("","",null);
    }
    xmlDoc.async=false;
    xmlDoc.load(xmlFile); //loadXML() 方法用于加载字符串(文本),load() 用于加载文件
    return xmlDoc;
    }
    // 首先对xml对象进行判断
    function checkXMLDocObj(xmlFile)
    {
      var xmlDoc = getXmlDocument(xmlFile);
      if(xmlDoc==null){alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');}
      return xmlDoc;
    }
    function showXmlData(){
    var xmlDoc= checkXMLDocObj(xmlAdder);
            //FF下不支持etElementsByTagName("a/b")的方式,具体原因期待高手解答
    var xml_Server_Name=xmlDoc.getElementsByTagName("GameAreaInfo");
    var xmlArray=new Array();
    for(var i=0;i<xml_Server_Name.length;i++){
                    //IE下第二个节点取法是childNodes[1]没错,但是FF不同,FF会把xml文件中的回车符也当做是节  
                    //点,nodeName为#text,所以在FF下取第二个子节点应该是childNodes[3]
    var secondeNode = !-[1,]?1:3;
                   //FF不支持节点用text属性获取其子节点的text内容,所以最好改成firstChild.nodeValue     
    var v = xml_Server_Name[i].childNodes[secondeNode].firstChild.nodeValue; 
    if(v == 6){
    document.write(v);
    document.write("<br />");
    //xmlArray[xmlArray.length] = v; //这个是最原始的方法为数组添加项,可以兼容IE5
    xmlArray.push(v);     //push方法在IE5中不被支持
    }
    }
    //return xmlArray;
    return alert(xmlArray);
    }
    showXmlData();
    </script>
    <ul id="xmldata"></ul>
    </body>
    </html>
    我是新手,这些仅供楼主参考,至于FF下load方式解析xml路径不能是远程http://....xml类型的原因我也不清楚 ,请大虾们解答,以上方法可兼容IE和FF,楼主可以试试,只要把xml存到本地或服务器的文件夹中即可