AJAX responseXML 使用

首先,要把你生成XML的reponse流进行设置:response.setContentType("text/xml;charset=ISO-8859-1");

如果是JSP页,也可以这样:<%@ page contentType="text/xml;charset=ISO-8859-1" %>

 

其次。。。你的根结点应该只有一个。。。根结点不应该有同级的。。。有时马虎了还真容易犯这样的错误

 

我的XML<response><ddd>666</ddd><ddd>777</ddd></response>

然后说说前台:

 

var response = xmlHttp.responseXML;

var root = response.documentElement;

这些都没有争议。。。网上一堆堆的

 

var ret = root.getElementsByTagName("ddd");

问题来了。。。如果ddd是你的根结点,那么你这么用,或许你能取到根结点对象,但其内的东西貌似你什么也得不着(个人经历。。。如有不对之处还请大家指正);另外需要注意你的XML是纯净的,不要在根结点外还有输出,如:%E6%9D%A8%E5%B3%B0<response>999</response>,这样ajax不认(不能解析为XML)

如果ddd不是你的根结点,那么这么用完全没问题

接着ret[0].text就可以取到第一个叫ddd的结点的值了:我的是666

 

另外也可以这么取值

var nodes = root.childNodes;

nodes[0].text

当然,这个就没有根结点的限制!

777

你可能感兴趣的:(Ajax,jsp,xml)