日期:2014-05-18  浏览次数:20676 次

`````````ajax问题`````~~~
我想做一个功能是:点击按钮,通过ajax访问数据库,从数据库查询数据
,将数据转化为XML,将数据发回客户端

下面的代码是将数据转化为XML的那段:
StringBuffer   xml   =   new   StringBuffer( " <?xml   version= "+ "1.0 "+ "   encoding= "+ "UTF-8 "+ "?> "+ " <result> ");

for(j=0;j <tableSize;j++)
{
xml.append( " <data> ");
xml.append( " <ip> "+tableIp2[j]+ " </ip> ");
area=tableArea2[j];
area=new   String(area.getBytes( "ISO-8859-1 "), "utf-8 ");
xml.append( " <ipArea> "+area+ " </ipArea> ");
xml.append( " <ipNum> "+tableData2[j]+ " </ipNum> ");
xml.append( " </data> ");
}

                xml.append( " </result> ");
               
                //通过这个方法发送回去
                sendResponse(response,   xml.toString());

我这样做在客户端只能用var   results   =   xmlHttp.responseTest得到数据
不能用var   results   =   xmlHttp.responseXML解析得到数据
XML解析部分是没有问题的
我想是我将数据库查询出来转化为XML时候出问题
请问应该怎么改?
谢谢~~~~`

------解决方案--------------------
xml拼装完成后,直接通过response发出去啊
response.setContentType( "text/xml;charset=UTF-8 ");
response.getWriter().write(xml.toString());
response.getWriter().flush();
------解决方案--------------------
alert一下repsonseXML看看有没有数据,有的话就是你后面的解析代码错了.
------解决方案--------------------
发现XML写错了:
StringBuffer xml = new StringBuffer( " <?xml version= "+ "1.0 "+ " encoding= "+ "UTF-8 "+ "?> "+ " <result> ");

StringBuffer xml = new StringBuffer( " <?xml version=\ "1.0\ " encoding=\ "UTF-8\ "?> <result> ");


------解决方案--------------------
输出头response.setContentType( "text/xml;charset=UTF-8 ");
如果有问题,就是你的xml文件不对