android开发如何实现更新服务器端的xml文件?

如题所述

Android跟服务器交互数据,有时数据量大时,就需要以xml形式的交互数据。这里来实现服务器给Android客户端发送xml数据,Android客户端解析。
服务器端我使用dom4j第三方包来组织xml数据,大家可自行百度下载。而Android客户端则使用 XmlPullParser来解析xml数据。

服务器端代码:

[java] view plaincopy
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");
[java] view plaincopy
Document document = DocumentHelper.createDocument();
Element persons = DocumentHelper.createElement("persons");
document.add(persons);
[java] view plaincopy
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("测试");
[java] view plaincopy
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客户端:
[java] view plaincopy
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){

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-01
代码coding太麻烦了,后台可以写一个Server用来连接服务器以便检测是否有更新,如果有更新的话服务器端会提供好端口,直接去服务器把数据流存在本地xml文档里就可以了。本回答被网友采纳

安卓软件开发中的xml是做什么的,要如何使用
在指定按钮触发的程序方面,XML通过与Java或Kotlin代码结合实现。通常,开发者会在XML文件中使用`onClick`属性为按钮添加事件监听器。当按钮被用户点击时,相应的事件监听器将触发,从而执行预定义的程序逻辑。这样,开发者可以灵活地在用户与界面交互时执行各种功能,如显示信息、执行操作或跳转到其他界面。...

在编写android时导入已有项目碰到的xml文件问题
你可以点击 工具栏的Project下的Clean ,或者右键工程找到 Properties 点击它 ,会弹出一个窗口在窗口下你可以看到Android 点击Android 选择API版本就可以了

android中怎么在AndroidManifest.xml文件中配置Service
第一个name是你service位置的,包括完整的包名和service名。如果包名就是你定义的程序包名,也就是和gen目录下那个包的名字一样的话,直接".service名"就可以了。第二个name是你调用service时intent.setAction();中的参数,这个你可以自己随便定义的。

android怎么获取服务器的xml文件
通过http协议与服务器建立链接。然后服务器返回一个String类型的xml字符串,android客户端把字符串解析成xml就ok.具体例子请参考android学习手册。里面有源码。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行, 源码采用android studio目录结构,高亮显示代码,文档都采用文档结...

如何对Android的版本进行检测与更新
1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName。 2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面。 3.当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击...

android开发从后台获取xml数据怎么解析
Android--3种解析XML数据的步骤 采用DOM解析时具体处理步骤是:1 首先利用DocumentBuilderFactory创建一个DocumentBuilderFactory实例 2 然后利用DocumentBuilderFactory创建DocumentBuilder 3 然后加载XML文档(Document),4 然后获取文档的根结点(Element),5 然后获取根结点中所有子节点的列表(NodeList),6 然后...

android mvvm怎么更新数据
在MVVM模式中ViewModel和View是用绑定关系来实现的,所以有了DataBinding使我们构建AndroidMVVM应用程序成为可能。之前看了很多关于DataBinding的博客和相关的一些Demo,大多数就是往xml布局文件传入一些数据,然后把这些数据绑定到控件上(如TextViewbinding:text=逗@{user.name}),接着在这些控件上(如Button...

用Eclipse开发Android软件时,*.xml文件是干什么用的?
Android是代码与界面完全分离的,XML里面存放的都是布局文件的信息,比如布局的格式,里面都有什么按钮,以什么方式对其之类的,安卓程序执行的时候先从xml文件中读取这些信息然后根据这些信息显示界面。

android开发之XML问题
常用的三大类,一是<set>,子元素有<scale>、<alpha>等等,这是动画效果的集合 二是,子元素就是<item>了,这个主要控制点击、焦点的效果 三是<shape>,子元素有<stroke>、<padding>、<solid>等,主要写一些比如圆角,边框之类的效果。其他的需要自己去了解啦!谢谢采纳!

android如何获取服务器端文件列表及相关信息
1、你与服务端的通信协议。如果一般服务端已经开发好了,那么会有一套通信协议,通常与手机的交互都采用JSON格式发送,减少流量。你可以百度下JSON的相关知识。很简单的一种格式。如果不是JSON的话一般会是XML,不过很少见。2、数据量。Android market应用列表见过吧?很多情况下回做成懒加载,而不是刷新...

相似回答