var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data;
谁能给我解释一下这个是怎么解释的
用HIBERNATE+ajax作的一个小例子."CONTENT"是什么!!它是怎样解释XML的!!!

解决方案 »

  1.   

    CONTENT肯定是一个节点~而且有好几个,所以取了第0个
      

  2.   

    但是后面那个firstChild是什么意思呀?????
      

  3.   

    是CONTENT下的第一个子结点
      

  4.   

    request.setCharacterEncoding("gb2312");
    response.setContentType("text/xml; charset=gb2312");
    response.setHeader("Cache-Control","no-cache");
    String name=request.getParameter("name");
    PrintWriter out=response.getWriter();
    Session session=SessionFactory.currentSession();
    Query query=session.createQuery("from TbUser as u where u.name=:username");
    query.setString("username",name);
    List list=query.list();
    System.out.println("结果集为:"+list.size());

    out.println("<pront>");
    if(list.size()!=0){
    System.out.println("<content>"+"名字已经使用!"+"</content>");
    out.println("<content>"+"名字已经使用!"+"</content>");
    }else{
    System.out.println("<content>"+"名字可以使用!"+"</content>");
    out.println("<content>"+"名字可以使用!"+"</content>");
    }
    out.println("</pront>");
    out.close();
    可是它就没有子节点呀????
      

  5.   

    var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data; 
    它是解析XML文档的
    getElementsByTagName()根据节点名称,获取文档中的节点,返回对象数组
    <content></content>
      

  6.   

    我试了一下
    xml写成
    <pront>
    <content>
    名字可以使用
    </content>
    </pront>
    然后用
    var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data;
    alert(res);
    可以获得内容的~~
      

  7.   

    我估计是你页面写的有问题,访问的时候可能没有出现你想要的内容,所以他说找不到对象
    直接带着参数访问一下那个页面,看看出现的是不是
    <pront> 
    <content> 
    名字可以使用 
    </content> 
    </pront> 
      

  8.   

    刚开始我也是跟你一样按照参考文档上面这样写的
    可是,现在,你可以返回一个字符串,如果想返回一个table形式的 
    就直接用字符串拼起来了
    真样不用找一个一个的节点了
    然后把返回到字符串赋给一个DIV就可以正常显示了

    java中
    out.print("<table><tr><td>aaa<td></tr>");
    javascript中
    var xml=XMLHttpReq.responseText;
    document.getElementById("").innerHTML=xml;
    按照这样就可以了
      

  9.   

    首先在页面上写上句话:
    var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data;
    但程序运行的事后不会先执行这段话。第一步:在JSP页面中
    当你点击一个button或submit的时候,CLICK事件会调用一个Servlet,这个Servlet是你自己定义的。第二步:当跳转到servlet中
    当跳转到Servlet里面的时候,Servlet会去判断你的登录名,和密码,是否又错误,然后会在下面写上一个
    out.println(<res>);
    out.println(<content>);
    out.println(</content>);
    out.println(</res>);
    这些就是在Servlet中写上一个简单的XML文件,这个时候当文件执行玩了以后,
    你的页面就会再跳到原来的JSP页面中。第三步:再次跳转到JSP中
    这个事后
    var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data;
    这句话才真正的执行,因为你在Servlet中写的XML文件直接由这句话执行,让后会在页面上用一个Window.alert(res)把你判断所得到的XML里面的值打印出来。
    这样就完成了一个通过AJAX判断登录是否成功的例子。PS:最后帮你解释一下这段话
    你声明一个VES的变量,然后将XML里面CONTENT下的第一个子节点找出来,然后“.firstChild.data”得到子结点里面的值。
      

  10.   

    var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data;
    alert(res);
    可是老是报缺少对象