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
原创粉丝点击