android下通过xstream解析XML
来源:互联网 发布:蜂窝数据无法登陆应用 编辑:程序博客网 时间:2024/06/06 09:14
可以通过json格式向android http客户端传输数据,见:android下支持json的远程访问,也可以用xml格式。
下面是一个xml文件的格式示例。
代码片段,双击复制
下载或者访问该xml文件:[Download not found]
如果解析上面的xml文件呢?这里选用了xstream,网址:
代码片段,双击复制
xstream可以自动解析文件,并且根据xml数据实例化javabean。如果不这样,需要手工编写SAX API代码解析。
首先编写了一个对应的Product的javabean:
代码片段,双击复制
然后,需要类似这样调用xstream的代码(代码还是改自实现android activity之间的跳转):
代码片段,双击复制
执行NextActivity的截图:
从服务器端返回的中文内容能够正确解码。不过,如果通过eclipse插件中的ddms日志,看到的是乱码,估计和日志或者eclipse插件默认字符集有关 。
另外,想要使用xstream需要引入xstream包。具体方法见:在eclipse的android项目中引入第三方包。在这里xstream又依赖xpp3用于对xml解析。xpp3的网址:
代码片段,双击复制
可以在这里下载到最新的xpp3分发包:
代码片段,双击复制
然后解压缩,将其中的xpp3_min-*.jar导入项目即可。
或者也可以选择不依赖xpp3包,这样可以节省24K左右的空间。需要实例化XStream时:
代码片段,双击复制
另外,日期格式用:
代码片段,双击复制
是为了直接转型方面,如果比较复杂,需要实现xstream的转型接口做定制实现:
代码片段,双击复制
下面是一个xml文件的格式示例。
01
02
03
04
<product>
<name>NetGear 614v9无线路由器</name>
<createTime>
2009
-
10
-
27
00
:
00
:
00.0
CST</createTime>
</product>
下载或者访问该xml文件:[Download not found]
如果解析上面的xml文件呢?这里选用了xstream,网址:
01
http:
//xstream.codehaus.org/
xstream可以自动解析文件,并且根据xml数据实例化javabean。如果不这样,需要手工编写SAX API代码解析。
首先编写了一个对应的Product的javabean:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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之间的跳转):
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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的网址:
01
http:
//www.extreme.indiana.edu/xgws/xsoap/xpp/
可以在这里下载到最新的xpp3分发包:
01
http:
//www.extreme.indiana.edu/dist/java-repository/xpp3/distributions/
然后解压缩,将其中的xpp3_min-*.jar导入项目即可。
或者也可以选择不依赖xpp3包,这样可以节省24K左右的空间。需要实例化XStream时:
01
XStream xstream =
new
XStream(
new
DomDriver());
另外,日期格式用:
01
2012
-
07
-
23
00
:
00
:
00.0
CST
是为了直接转型方面,如果比较复杂,需要实现xstream的转型接口做定制实现:
01
http:
//xstream.codehaus.org/converter-tutorial.html
- android下通过xstream解析XML
- android下通过xstream解析xml格式信息
- android下通过xstream解析xml格式信息
- android xstream 解析xml
- Android:利用xstream解析xml文件
- android下xstream转换对象和xml
- android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
- 解析XML XStream
- 用xstream解析XML
- 使用xstream解析xml
- xml 解析 Xstream
- XStream解析xml文件
- XStream解析xml
- XStream解析XMl文件
- XStream解析XML字符串
- XStream解析XML
- 利用xstream解析xml
- XStream解析xml
- (精)HTML中的GET和POST编码
- 关于MFC下检查和消除内存泄露的技巧
- 深入浅出LDD-5-设备的阻塞与非阻塞操作
- 等你,执手渡流年(七夕)
- hdu 3835 R(N)
- android下通过xstream解析XML
- JTabbedPane添加关闭按钮和缩略图 .
- 12个有趣的C语言面试题
- Spring源码分析-资源定位(一)
- Linux下向SVN服务器添加新文件步骤
- HDU 4143 A Simple Problem
- HDU 4320 Arcane Numbers 1(12年多校3-数学)
- jsp页面中文乱码(初学者)
- android SurfaceView实现人物动画