AJAX从servlet返回的XML解析问题 急 大哥们帮帮忙

zouzhiqiangzzq 2008-07-31 04:00:00
selvet 内容

package com.cn.zzq.DyList;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DyListServlet extends HttpServlet {

public DyListServlet() {
super();
}

public void destroy() {
super.destroy();
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
service(arg0, arg1);
}
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
service(arg0, arg1);
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/xml; charset=GB2312");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
PrintWriter out = response.getWriter();
String dylist = new String(request.getParameter("adeName").getBytes("ISO8859_1"),"gb2312");
String tempStr = "<response>";

if(dylist.equalsIgnoreCase("湖北")){
tempStr += "<adname>荆洲</adname>";
tempStr += "<adname>宜昌</adname>";
tempStr += "<adname>武汉</adname>";
tempStr += "<adname>其它</adname>";

}else if(dylist.equalsIgnoreCase("湖南")){
tempStr += "<adname>长沙</adname>";
tempStr += "<adname>岳阳</adname>";
tempStr += "<adname>韶关</adname>";
tempStr += "<adname>其它</adname>";
}else{
tempStr += "<adname>香港</adname>";
tempStr += "<adname>澳门</adname>";
tempStr += "<adname>台湾</adname>";
tempStr += "<adname>其它</adname>";
}

tempStr += "</response>";
out.print(tempStr);
out.close();
}
public void init() throws ServletException {
// Put your code here
}

}

JSP页面

<%@ page contentType="text/html;charset=gb2312" %>
<%@page import="com.cn.zzq.User.UserBean"%>
<html>
<head>
<title>Ajax学习欢迎页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
//UserBean user = (UserBean)session.getAttribute("user");
%>
<script type="text/javascript">
if (window.ActiveXObject && !window.XMLHttpRequest) {
window.XMLHttpRequest=function() {
return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
};
}
var request=new XMLHttpRequest();
function aderChange(){
var adename = document.getElementById("aderselect").value;
var url = "servlet/DyListServlet?adeName="+adename;
request.open("GET",url,true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.onreadystatechange = showChange;//指定响应方法
request.send(null); //发送请求
}

function showChange(){
if(request.readyState==4 && request.status==200){
var xmlDoc = request.responseXML;
//var results = xmlDoc.getElementsByTagName("name");
// alert(results.length);
//for(var i = 0; i < results.length; i++) {

// }
}
}

</script>
</head>

<body>
<div align="center">欢迎登陆 下面的AJAX联动示例</div>
<div align="center">
<select name="aderselect" id="aderselect" onchange="aderChange()">
<option value="default">请选择省份</option>
<option value="湖北">湖北</option>
<option value="湖南">湖南</option>
<option value="其他">其他</option>
</select>
<div style="display: none;">
<select name="select">
</select>
</div>
</div>
</body>
</html>

var xmlDoc = request.responseXML;
var results = xmlDoc.getElementsByTagName("name");
alert(results.length);为0
不知道怎么回事
大哥们帮帮忙
...全文
271 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwei1216 2008-08-03
  • 打赏
  • 举报
回复
你可以这样试试看

var url = "servlet/DyListServlet“;
request.open("GET",url,true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.onreadystatechange = showChange;//指定响应方法
request.send(”adeName=”+adename); //发送请求
因为 send()方法本来就是用来传参数的




sd5816690 2008-08-02
  • 打赏
  • 举报
回复
serlvet里面没有设置
<?xml version="1.0" ?>

如果要访问xmlDoc.getElementsByTagName("name");
必须有名称为"name"的结点

看看我在另外一篇帖子里怎么做的
http://topic.csdn.net/u/20080802/11/0829065c-0187-4d53-a120-efd493d158e5.html
leosming 2008-08-02
  • 打赏
  • 举报
回复
var results = xmlDoc.getElementsByName("aderselect");

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧