CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [转贴] 问一个用javascript读取xml的问题!!!急啊!
mz89757053
版主
Rank: 7Rank: 7Rank: 7


UID 304999
精华 0
积分 6933
帖子 8295
威望 116
ZD币 1002 元
阅读权限 250
注册 2008-3-10
状态 离线
  楼主
发表于 2008-3-18 15:57  资料  个人空间  短消息  加为好友 
开发者在线

问一个用javascript读取xml的问题!!!急啊!

我的项目是用java+jsp+structs开发的,前台有用到ajax.我要根据客户不同的选择产生不同的xml。比如根据条件查询到不同的结果集,再生成一个String.如下:   
          public   static   String   createXML(ResultSet   rs)   
          {   
          StringBuffer   clientBuffer   =   new   StringBuffer();   
          clientBuffer.append("<?xml   version=\"1.0\"   encoding=\"gb2312\"?>\n");     
          clientBuffer.append("<gpx>\n");   
          try{   
          while(rs.next())   
          {   
                  clientBuffer.append("<trkpt>\n");   
                  clientBuffer.append("\t<clph>"+rs.getString("clph")+"</clph>\n");   
                  clientBuffer.append("\t<jsymc>"+rs.getString("jsymc")+"</jsymc>\n");   
                  clientBuffer.append("\t<lng>"+rs.getString("lng")+"</lng>\n");   
                  clientBuffer.append("\t<lat>"+rs.getString("lat")+"</lat>\n");   
                  clientBuffer.append("\t<location>"+rs.getString("location")+"</location>\n");   
                  clientBuffer.append("\t<speed>"+rs.getString("speed")+"</speed>\n");   
                  clientBuffer.append("\t<shxlmc>"+rs.getString("shxlmc")+"</shxlmc>\n");   
                  clientBuffer.append("</trkpt>\n");   
          }   
          }catch(Exception   e){}   
          clientBuffer.append("</gpx>");   
          return   clientBuffer.toString();   
          }   
  然后在action中根据这个String生成xml:   
  String   gpxString   =   createXML(rs);   
   
  httpservletresponse.setContentType("text/xml");   
  httpservletresponse.setHeader("Cache-Control",   "no-cache");   
  httpservletresponse.getWriter().write(gpxString);   
  javascript方法:   
          function   play()   
          {   
    var   req   =   GXmlHttp.create();   
                  var   reqStr   =   '&qssj='+qssj+'&jssj='+jssj;   
                  req.open('POST',   '/gis/g0101action.do?method=methodg0101_m0'+reqStr,   true);   
                  req.setRequestHeader("Content-Type",   "application/x-www-form-urlencoded");     
                  req.onreadystatechange   =   function()     
                  {   
                          if(req.readyState   ==   4)   {     
                          if   (req.status   ==   200)   {      
                                  //var   content   =   req.responseXML;                                               
                                    //alert(content.getElementsByTagName("trkpt").length);           
   
                          }   
                          }   
                  };   
                  req.send(reqStr);           
          }




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
mz89757053
版主
Rank: 7Rank: 7Rank: 7


UID 304999
精华 0
积分 6933
帖子 8295
威望 116
ZD币 1002 元
阅读权限 250
注册 2008-3-10
状态 离线
  沙发
发表于 2008-3-18 15:57  资料  个人空间  短消息  加为好友 
(接上)我用alert(req.responseText)可以看到能够看到xml的内容,但为什么用alert(content.getElementsByTagName("trkpt").length);   看到的长度为0。   
  实在没办法,我就把action中的方法改为   
      File   f=new   File(httpservletrequest.getRealPath("./g/g01/"),"data.xml");   
      PrintWriter   toClient=new   PrintWriter(new   FileWriter(f));   
      toClient.println(gpxString);   
      toClient.flush();   
      toClient.close();   
  但是这样子产生的xml文件,如果多个用户同时操作的时候,会出问题。   
  大家有什么好的方法或建议???




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 



当前时区 GMT+8, 现在时间是 2009-7-4 16:39

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.067911 second(s), 3/3 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版