首页 > 语言 > JavaScript > 正文

javascript解析ajax返回的xml和json格式数据实例详解

2024-05-06 15:03:27
字体:
来源:转载
供稿:网友

本文实例讲述了javascript解析ajax返回的xml和json格式数据。分享给大家供大家参考,具体如下:

写个例子,以备后用

一、JavaScript 解析返回的xml格式的数据:

1、javascript版本的ajax发送请求

(1)、创建XMLHttpRequest对象,这个对象就是ajax请求的核心,是ajax请求和响应的信息载体,单是不同浏览器创建方式不同
(2)、请求路径
(3)、使用open方法绑定发送请求
(4)、使用send() 方法发送请求
(5)、获取服务器返回的字符串   xmlhttpRequest.responseText;
(6)、获取服务端返回的值,以xml对象的形式存储  xmlhttpRequest.responseXML;
(7)、使用W3C DOM节点树方法和属性对该XML文档对象进行检查和解析。

2、 实例:

(1)、发送ajax请求,以及解析返回的数据

<script type="text/javascript">/* js版本发送ajax请求 */function tellxml(){ // 创建对象,适合于firefox 和safari var xmlhttpRequest= new XMLHttpRequest(); // 创建对象,适合于ie // var xmlhttpRequest=new ActiveXObject("Msxml2.XMLHTTP"); // 请求发送路径 url var url="http://localhost:18080/servlet/Servlet1?aa=10"; // Open方法绑定一个发送过程,但不发送数据。Open方法最后一个参数为true时表示异步,否则同步 xmlhttpRequest.open("POST",url,true); // Send方法就是发送请求数据 xmlhttpRequest.send(url); // readstate 就是一个xmlhttprequest 对象的一个属性,来记录服务器返回的状态 var readstate =xmlhttpRequest.readyState; alert("状态:"+readstate); // status 就是发送请求的状态,如果是200 则说明请求响应成功 var status=xmlhttpRequest.status; alert("请求发送结果"+status); // "responseText”是xmlhttpRequest的一个属性,来以字符串形式存储HTTP响应值;“responseXML”属性是以XML形式来记录HTTP响应的值。 var text= xmlhttpRequest.responseText; alert(text); // “responseXML”是xmlhttpRequest的一个属性,是以XML文档的对象来存储服务器端返回的值,可以使用W3C DOM节点树方法和属性对该XML文档对象进行检查和解析。 var xml= xmlhttpRequest.responseXML; var values=xml.getElementsByTagName("info"); alert("值"+values); alert("长度"+values.length); // 解析获取内容 for(var i=0;i<values.length;i++){ var name1=values[i].getElementsByTagName("name")[0].firstChild.data; alert(name1); }};</script>

(2)、servlet 接受ajax 请求:

@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String aaa= request.getParameter("aa"); System.out.print("ajax 数据:"+aaa); // 向客户端响应信息 response.setCharacterEncoding("GBK"); response.setContentType("text/xml"); PrintWriter out= response.getWriter(); out.print("<?xml version=/"1.0/" encoding=/"GBK/"?>"); out.println("<infos>"); out.println("<info>"); out.println("<name>"+"name1"+"</name>"); out.println("<age>"+12+"</age>"); out.println("<name>"+"name2"+"</name>"); out.println("<age>"+22+"</age>"); out.println("</info>"); out.println("<info>"); out.println("<name>"+"name11"+"</name>"); out.println("<age>"+112+"</age>"); out.println("<name>"+"name22"+"</name>"); out.println("<age>"+222+"</age>"); out.println("</info>"); out.println("</infos>");}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选