android下通过xstream解析xml格式信息

2024-06-06 03:58

本文主要是介绍android下通过xstream解析xml格式信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

==========推荐============

 实例教程-----会员贡献索引贴

http://www.eoeandroid.com/thread-1987-1-1.html

 

android 图像处理滤镜系列合集

http://www.eoeandroid.com/thread-178656-1-1.html

分享45个android实例源码

http://www.eoeandroid.com/thread-185986-1-1.html

==========帖子正文==========

可以通过json格式向android
http客户端传输数据,见:android下支持json的远程访问,也可以用xml格式。
  下面是一个xml文件的格式示例。

<product>  
<name>NetGear 614v9无线路由器</name>  
<createTime>2009-10-27 00:00:00.0 CST</createTime>  
</product>

下载或者访问该xml文件:[Download not found]
  如果解析上面的xml文件呢?这里选用了xstream,网址:

http://xstream.codehaus.org/

xstream可以自动解析文件,并且根据xml数据实例化javabean。如果不这样,需要手工编写SAX
API代码解析。
  首先编写了一个对应的Product的javabean:

package com.easymorse;  
import java.util.Date;  
public class Product { 
@Override
public String toString() { 
return “Product [createTime=" + createTime.toLocaleString() + ", name=" + name + "]“; 
}  
private String name;  
public String getName() { 
return name; 
}  
public void setName(String name) { 
this.name = name; 
}  
public Date getCreateTime() { 
return createTime; 
}  
public void setCreateTime(Date createTime) { 
this.createTime = createTime; 
}  
private Date createTime; 
}

然后,需要类似这样调用xstream的代码(代码还是改自实现android activity之间的跳转):

package com.easymorse;  
import java.io.BufferedReader; 
import java.io.InputStreamReader;  
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient;  
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView;  
import com.thoughtworks.xstream.XStream;  
public class NextActivity extends Activity { 
private TextView textView; 
@Override
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
this.setContentView(R.layout.next_activity); 
this.textView=(TextView) this.findViewById(R.id.TextView01);  
HttpClient client = new DefaultHttpClient(); 
StringBuilder builder = new StringBuilder();  
HttpGet get = new HttpGet( 
“http://marshal.easymorse.com/wp-content/uploads/2009/10/product2.xml”); 
try { 
HttpResponse response = client.execute(get); 
BufferedReader reader = new BufferedReader(new InputStreamReader( 
response.getEntity().getContent())); 
for (String s = reader.readLine(); s != null; s = reader.readLine()) { 
builder.append(s); 
} 
Log.v(“response”,”product:”+builder.toString()); 
XStream xstream = new XStream(); 
xstream.alias(“product”, Product.class); 
Product product=(Product) xstream.fromXML(builder.toString()); 
this.textView.setText(product.toString()); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
}

执行NextActivity的截图:

从服务器端返回的中文内容能够正确解码。不过,如果通过eclipse插件中的ddms日志,看到的是乱码,估计和日志或者eclipse插件默认字符集有关 。

另外,想要使用xstream需要引入xstream包。具体方法见:在eclipse的android项目中引入第三方包。在这里xstream又依赖xpp3用于对xml解析。xpp3的网址:

http://www.extreme.indiana.edu/xgws/xsoap/xpp/

可以在这里下载到最新的xpp3分发包:

 http://www.extreme.indiana.edu/dist/java-repository/xpp3/distributions/

然后解压缩,将其中的xpp3_min-*.jar导入项目即可。
  或者也可以选择不依赖xpp3包,这样可以节省24K左右的空间。需要实例化XStream时:

XStream xstream = new XStream(new DomDriver());

另外,日期格式用:

2012-07-23 00:00:00.0 CST

是为了直接转型方面,如果比较复杂,需要实现xstream的转型接口做定制实现:

 http://xstream.codehaus.org/converter-tutorial.html

 

 

这篇关于android下通过xstream解析xml格式信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035025

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N