android xml网络传输数据,Android开发17——获取网络资源之XML数据

publicclassVideoNewsServiceImplimplementsVideoNewsService

{

/**

* 获取最新视频资讯,从XML文件中,比较常用

*/

publicList getNewsFromXML()throwsException

{

List lst =newArrayList();

String path ="http://xxx.xxx.xxx.xxx:8080/web/ListServlet";

URL url =newURL(path);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setReadTimeout(5000);

conn.setRequestMethod("GET");

if(200== conn.getResponseCode())

{

InputStream instream = conn.getInputStream();

lst = parseXML(instream);

}

returnlst;

}

/**

* 解析XML

*/

privateList parseXML(InputStream instream)throwsException

{

List lst =null;

VideoNews vn =null;

// 利用ANDROID提供的API快速获得pull解析器

XmlPullParser pullParser = Xml.newPullParser();

// 设置需要解析的XML数据

pullParser.setInput(instream,"UTF-8");

// 取得事件

intevent = pullParser.getEventType();

// 若为解析到末尾,文档结束

while(event != XmlPullParser.END_DOCUMENT)

{

String nodeName = pullParser.getName();

switch(event)

{

// 文档开始

caseXmlPullParser.START_DOCUMENT:

lst =newArrayList();

break;

// 标签开始

caseXmlPullParser.START_TAG:

if("news".equals(nodeName))

{

vn =newVideoNews();

Integer id = Integer.valueOf(pullParser.getAttributeValue(0));

vn.setId(id);

}

if("title".equals(nodeName))

{

String title = pullParser.nextText();

vn.setTitle(title);

}

if("length".equals(nodeName))

{

Integer length = Integer.valueOf(pullParser.nextText());

vn.setTimeLength(length);

}

break;

// 标签结束

caseXmlPullParser.END_TAG:

if("news".equals(nodeName))

{

lst.add(vn);

vn =null;

}

break;

}

// 下一个标签

event = pullParser.next();

}

returnlst;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值