Android解析服务器端发来的xml数据示例
来源:互联网 发布:linux启动nginx服务 编辑:程序博客网 时间:2024/06/12 15:00
Android跟服务器交互数据,有时数据量大时,就需要以xml形式的交互数据,下面与大家分享下使用XmlPullParser来解析xml数据,感兴趣的朋友可以参考下哈
Android跟服务器交互数据,有时数据量大时,就需要以xml形式的交互数据。这里来实现服务器给Android客户端发送xml数据,Android客户端解析。
服务器端我使用dom4j第三方包来组织xml数据,大家可自行百度下载。而Android客户端则使用 XmlPullParser来解析xml数据。
服务器端代码:
复制代码代码如下:
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class getSms extends HttpServlet {
public getSms() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8" );
request.setCharacterEncoding("UTF-8");
复制代码代码如下:
Document document = DocumentHelper.createDocument();
Element persons = DocumentHelper.createElement("persons");
document.add(persons);
复制代码代码如下:
persons.addElement("address").addText("南京");
persons.addElement("id").addAttribute(1);
persons.addElement("thread_id").addText(2);
persons.addElement("date").addText("2013");
persons.addElement("status").addText(-1);
persons.addElement("type").addText(0);
persons.addElement("body").addText("测试");
复制代码代码如下:
String xml = document.asXML(); //用dom4j组织一个XML字符串
response.setContentType("text/xml; charset=UTF-8"); //设置返回值的类型
response.getOutputStream().write(xml.getBytes("UTF-8")); //设置返回值
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
public void init() throws ServletException {
// Put your code here
}
}
Android客户端:
复制代码代码如下:
String url="http://10.0.2.2:8080/sms_server/servlet/getSms";
try{
URL u = new URL(url);
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setRequestMethod("GET");
if (conn.getResponseCode() == 200) {
InputStream in = conn.getInputStream();
XmlPullParser parser = Xml.newPullParser();
parser.setInput(in, "UTF-8");
int event = parser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) {
Log.i("start_document", "start_document");
switch (event) {
case XmlPullParser.START_TAG:
if ("address".equals(parser.getName())) {
String address=parser.nextText();
}
if ("id".equals(parser.getName())) {
int id=parser.getAttributeValue(0);
}
if (("thread_id").equals(parser.getName())) {
String thread_id=parser.nextText();
}
if ("date".equals(parser.getName())) {
String date=parser.nextText();
}
if (("status").equals(parser.getName())) {
String status=parser.nextText();
}
if ("type".equals(parser.getName())) {
String type=parser.nextText();
}
if ("body".equals(parser.getName())) {
String body=parser.nextText();
}
break;
case XmlPullParser.END_TAG:
break;
}
event = parser.next();
}
}
}catch(Exception e){
}
您可能感兴趣的文章:
- android操作XML的几种方法总结
- Android 使用XML做动画UI的深入解析
- 在AndroidManifest.xml中uses-sdk内属性意思
- android4.0混淆XmlPullParser报错原因分析解决
- Android 使用Pull方法解析XML文件的方法
- Android中使用pull解析器操作xml文件的解决办法
- Android中使用sax解析xml文件的方法
- Android开发之XML文件解析的使用
- Android序列化XML数据
0 0
- Android解析服务器端发来的xml数据示例
- Android解析服务器端发来的xml数据
- Android解析服务器端发来的xml数据
- Android获取服务器端数据(解析XML)
- 读取通过http发来的xml数据
- Android网络编程-----从服务器端获取xml数据并解析
- IE中不能解析服务器端传过来的xml数据
- 中科爱讯WiFi探针TZ007搭建UDP服务器端程序接收探针发来的数据
- 中科爱讯WiFi探针TZ006搭建UDP服务器端程序接收探针发来的数据
- Android xml数据的解析
- JOM4J解析XML数据示例
- android从服务器端解析json数据
- Android---解析XML数据
- Android 解析XML数据
- Android XML数据解析
- Android XML数据解析
- android解析XML数据
- android XML数据解析
- 数据库编程
- FOJ 2170 花生的序列 dp
- 详解使用sax解析xml文件的DefaultHandler处理类(转载)
- OpenStack Icehouse error: Virtual Interface creation failed解决方法
- PyDev的安装(编写Python的Eclipse插件)
- Android解析服务器端发来的xml数据示例
- UML语言简介-用例图
- c# 生成唯一id 主键
- 阿里巴巴面试题
- 那些年,我们一起玩过的儿童游戏
- 可视化日志分析软件:Logstalgia
- CSS Pseudo-classes & Pseudo-elements
- CodeForces 412E - E-mail Addresses (模拟)
- IT行业三大定律