首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 困了一天的问题:ajax处理返回xml数据
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yajiu99
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-03-15 13:20:12 楼主
    看看下面代码,提交表单quickevent,ajax处理返回的xml数据,在createJSEvent中处理,duty[0].firstChild.nodeValue总报错说缺少对象,怀疑是不是返回的根本就不是xml,大伙帮找下问题
    <form   name=quickevent   action=javascript:submite();>
    <input   type=hidden   name=dd>
    <input   type=hidden   name=sd>
    <input   type=hidden   name=desc>
    <input   type=hidden   name=title>
    <input   type=hidden   name=users>
    <input   type=hidden   name=busy>
    <input   type=hidden   name=allday>
    </form>

    function   submite(){
    var   filename= 'test.do?action=create ';    
    importXML(filename, 'createJSEvent ');
    }

    <!--简化createJSEvent函数-->
    function   createJSEvent(xml){
    var   duty=xml.getElementsByTagName( "duty ");
    var   xmlRe   =   duty[0].firstChild.nodeValue;
    alert(xmlRe);
    }

    <!--importxml.js代码截取-->
    var   rq   =   new   Array();

    function   importXML(_1,_2)   {
    return   handleRequest(_1,_2);
    }
    function   handleRequest(   rurl,   fallback)   {
    rurl   +=   (   (   rurl.indexOf( '? ')   +   1   )   ?   '& '   :   '? '   )   +   (   new   Date()   ).getTime();
    if(   window.XMLHttpRequest   )
    return   handleNS(rurl,fallback);
    if(   !navigator.__ice_version   &&   window.ActiveXObject   )
    return   handleIE(rurl,fallback);
    if(   document.createElement   &&   document.childNodes   )
    return   handleOthers(rurl,fallback);
    return   false;
    }

    function   handleIE(u,f)   {
    try   {
    try   {  
    var   xmlObject   =   new   ActiveXObject(   'Microsoft.XMLDOM '   );
    }   catch(e)   {  
    var   xmlObject   =   new   ActiveXObject(   'Msxml2.XMLHTTP '   );  
    }
            rt   =   rq.length
            rq[rt]   =   xmlObject;
            rq[rt].onreadystatechange   =   new   Function(   'if(   rq[ '+rt+ '].readyState   ==   4   )   {   '+f+ '(rq[ '+rt+ ']);   rq[ '+rt+ ']=null;   } '   );
            rq[rt].load(u);
            return   true;
    }   catch(e)   {}
    }

    //action代码示例
    public   ActionForward   create(ActionMapping   actionMapping,
    ActionForm   actionForm,   HttpServletRequest   request,
    HttpServletResponse   response)   {
    StringBuffer   sb   =   new   StringBuffer( " <duty> ");
    sb.append( " <id> 8a814a8c1153e4b3011153f27c920002 </id> ")
    sb.append( " <users> ");
    sb.append( " <user> ");
    sb.append( " <userid> 402882880f5760bf010f57783cd20002 </userid> <username> 李杰 </username> ");
    sb.append( " </user> ");
    sb.append( " </users> ");
    sb.append( " <date> 2007-03-15 </date> ");
    sb.append( " <starttime> 03:00   PM </starttime> ");
    sb.append( " <endtime> 03:30   PM </endtime> ");
    sb.append( " <allday> off </allday> ");
    sb.append( " <description> </description> ");
    sb.append( " </duty> ");

    response.setContentType( "text/xml ");
    response.getWriter().write(dutyXML);

    return   null;
    }
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yajiu99
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-03-15 13:22:441楼 得分:0
    补充:String   dutyXML   =   sb.toString();
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • live_7sky
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-24 09:42:302楼 得分:0
    response.setContentType( "text/xml ");
    response.getWriter().write(dutyXML);

    return  null;

    为什么还要加上 return  null; 这句话
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yjs_lh
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-26 23:24:463楼 得分:0
    先在客户端把XML打出来看一下。

    JScript code
    function createJSEvent(xml){ alert(xml.xml); var duty=xml.getElementsByTagName( "duty "); alert(duty.length); alert(duty[0].xml); var xmlRe = duty[0].firstChild.nodeValue; alert(xmlRe); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yexin218
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-28 09:28:124楼 得分:0
    你可以吧传回来的xml打印出来,自己验证下。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • showbo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2008-04-28 09:52:065楼 得分:0
    Java code
    public ActionForward create(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { //加个xml声明试试 StringBuffer sb = new StringBuffer( "<?xml version='1.0' encoding='gb2312'?>"); sb = new StringBuffer( " <duty> "); sb.append( " <id> 8a814a8c1153e4b3011153f27c920002 </id> ") sb.append( " <users> "); sb.append( " <user> "); sb.append( " <userid> 402882880f5760bf010f57783cd20002 </userid> <username> 李杰 </username> "); sb.append( " </user> "); sb.append( " </users> "); sb.append( " <date> 2007-03-15 </date> "); sb.append( " <starttime> 03:00 PM </starttime> "); sb.append( " <endtime> 03:30 PM </endtime> "); sb.append( " <allday> off </allday> "); sb.append( " <description> </description> "); sb.append( " </duty> "); response.setContentType( "text/xml "); response.getWriter().write(dutyXML); response.end();//结束输出,防止输出其他信息破坏xml的结构,不知道java,不知道对象方法用对了没有?? //return null; }
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved