本帖最后由 hetengfei_ 于 2012-02-27 12:48:25 编辑

解决方案 »

  1.   

    那你要做太多工作了,如果是处理ajax返回的数据,还是在其他框架下解析吧。
    if ('ActiveXObject' in window) {
    var xml = new ActiveXObject('MSXML2.DOMDocument.6.0');
    alert(xml);
    }
    else {
    if (document.implementation.hasFeature('XML', '2.0')) {
    var xml = document.implementation.createDocument('', 'root', null);
    alert(xml);
    }
    }
      

  2.   

    (function(){
        var xmlFile= "<newborns><newborn><nebo_birthno>123</nebo_birthno><nebo_sex>1</nebo_sex><nebo_birthtime>2011-09-01 15:13:30</nebo_birthtime></newborn><newborn><nebo_birthno>251</nebo_birthno><nebo_sex>3</nebo_sex><nebo_birthtime>2012-01-01 15:13:30</nebo_birthtime></newborn></newborns>";
        var xmldoc =null;
        if(window.ActiveXObject){
            xmldoc = new ActiveXObject('Microsoft.XMLDOM');
            xmldoc.async = false;
            xmldoc.loadXML(xmlFile);        //xml文件内容
            //xmldoc.load("xml/request.xml");//文件名:
        }
        else{
            // xmldoc = document.implementation.createDocument('', '', null);// 加载文件
            parser = new DOMParser();
    xmldoc = parser.parseFromString(xmlFile, "text/xml");
        }
        if (!xmldoc) return;
        var nodes = xmldoc.getElementsByTagName("nebo_birthno");
        for(var i = 0;i<nodes.length;i++){
            var node = nodes[i];
            var text = nodes[i].text || nodes[i].textContent;
            alert(text);
        }
    })();
      

  3.   

    (function(){
        var xmlFile= "<newborns><newborn><nebo_birthno>123</nebo_birthno><nebo_sex>1</nebo_sex><nebo_birthtime>2011-09-01 15:13:30</nebo_birthtime></newborn><newborn><nebo_birthno>251</nebo_birthno><nebo_sex>3</nebo_sex><nebo_birthtime>2012-01-01 15:13:30</nebo_birthtime></newborn></newborns>";
        var xmldoc =null;
        if(window.ActiveXObject){
            xmldoc = new ActiveXObject('Microsoft.XMLDOM');
            xmldoc.async = false;
            xmldoc.loadXML(xmlFile);        //xml文件内容
            //xmldoc.load("xml/request.xml");//文件名:
        } else{
            // xmldoc = document.implementation.createDocument('', '', null);// 加载xml文件内容
            // xmldoc.load("xml/request.xml");//文件名
            var parser = new DOMParser();
    xmldoc = parser.parseFromString(xmlFile, "text/xml");
        }
        if (!xmldoc) return;
        var nodes = xmldoc.getElementsByTagName("nebo_birthno");
        for(var i = 0;i<nodes.length;i++){
            var node = nodes[i];
            var text = nodes[i].text || nodes[i].textContent;
            alert(text);
        }
    })();
      

  4.   

    火狐是:
     xmldoc.load(xmlFile);
    不是:
    xmldoc.loadXML(xmlFile);
      

  5.   

    我想问个问题:
    我用IE 可以看到,xmlDocument 的方法。
      但我用firefox 就看不到 fireFox 中xmldocument 对象的方法? 谁能教教我如何用firefox 调试来发现?下面是IE  看到的方法,如下图,firefox呢?
      

  6.   

    谢谢以上各位 的极力帮助。  我还是比较想不要遇到什么问题,都提问,还是自已发现好点。在IE 中,可以通过调试发现对象的方法来属性,写错了,可以调试发现。 在[firefox][chrome]下,就不会了,不知如何通过调试发现这个对象的所有可用的方法,[visual studio 没有提示啊]
      

  7.   

    比如:
    我怎么知到 ff 的是loadXML 啊?
      

  8.   

    你IE的开发工具是什么版本的,我IE8自带的怎么跟你的不一样。。
      

  9.   

    你好:axiheyhey   我的跟你的是一样的。 都是IE8.
      

  10.   

    那为什么界面不一样呢。。你的版本监视里面有内容,我的完全是空的,不过关系也不大,那里面也基本是通过遍历打印出来的而已(firefox下可以用firebug也可以查看),很多不可遍历的方法和属性上面根本就没有,所以靠谱点的方法是直接查文档。
    另外,你这贴的内容我已经帮你解决了,在3楼
      

  11.   

    firbug 运行console.dir(xmldoc) 
      

  12.   


    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'JSjiexiXml.jsp' starting page</title>
        <script type="text/javascript">
    //测试js解析解析xml字符串(跨浏览器) text="<bookstore>"  
    text=text+"<book>";   
    text=text+"<title>Everyday Italian</title>";   
    text=text+"<author>Giada De Laurentiis</author>";   
    text=text+"<year>2005</year>";   
    text=text+"</book>";   
    text=text+"</bookstore>";   
      
       try //Internet Explorer   
       {   
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");   
      xmlDoc.async="false";  
      //xmlDoc.loadXML(text); 
      var xmlStr ="<?xml version='1.0' encoding='GB2312'?>"+
       "<root>"+
       "<channel>"+
       "<title>解析XML字符串</title>"+
       "<author>春季</author>"+
       "<year>2012</year>"+
       "</channel>"+
       "</root>";
      
      xmlDoc.loadXML(xmlStr);
       }catch(e)   
       {   
      try //Firefox, Mozilla, Opera, etc.   
      {   
        parser=new DOMParser();   
        xmlDoc=parser.parseFromString(text,"text/xml");   
      }catch(e) {alert(e.message)}   
      }   
    try{   
    document.write(xmlDoc.getElementsByTagName("title")   
    [0].childNodes[0].nodeValue);   
    document.write("<br />");   
    document.write(xmlDoc.getElementsByTagName("author")   
    [0].childNodes[0].nodeValue);   
    document.write("<br />");   
    document.write(xmlDoc.getElementsByTagName("year")   
    [0].childNodes[0].nodeValue);   
    }catch(e){
    alert(e.message)
    }   
    </script>   
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->  </head>
      
      <body>
       <hr color="red">
        解析成功··· <br>
      </body>
    </html>我测试了下都没有问题啊 ,LZ可以试试。