您的位置:首页 > 移动开发 > Android开发

Android 从web应用获取xml格式的视频资讯并列表显示在屏幕上

2011-01-21 16:17 429 查看
就贴一下主要代码吧 ~

服务器的XML数据时这样

<?xml version="1.0" encoding="UTF-8"?>
<videos>
<video id="1">
<title>实拍奥巴马国宴秀中国谚语 主菜烤牛排</title>
<timelength>03:26</timelength>
</video>
<video id="2">
<title>浙江乐清被碾死村长家属获赔105万元</title>
<timelength>05:30</timelength>
</video>
<video id="3">
<title>男子火车站裸奔怒斥站长抗议车票难买</title>
<timelength>01:26</timelength>
</video>
<video id="4">
<title>实拍男子北漂5年挣不到钱 过年不敢回家</title>
<timelength>05:26</timelength>
</video>
<video id="5">
<title>数民警当街大战野猪13枪将其击毙(现场)</title>
<timelength>07:26</timelength>
</video>
<video id="6">
<title>徐帆忘提颁奖人惹不满 赵本山调侃冯小刚</title>
<timelength>04:26</timelength>
</video>
</videos>


核心代码如下:

package com.zyq.service;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;
import cn.zyq.voo.Video;
public class VideoService
{
/**
* 获取网络的最新视频资讯
* @return
* @throws Exception
*/
public static List<Video> getLastVideos() throws Exception
{
String path="http://192.168.1.168:8080/video/video.xml";
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(1000*5);

if(conn.getResponseCode()==200)
{
InputStream inputStream=conn.getInputStream();
return parseXML(inputStream);
}
return null;
}

/**
* 解析XML数据
* @param inputStream
* @return
* @throws Exception
*/
public static List<Video> parseXML(InputStream inputStream) throws Exception
{
List<Video> videos=null;
Video video=null;
XmlPullParser parser=Xml.newPullParser();
parser.setInput(inputStream, "UTF-8");
int event=parser.getEventType();
while(event!=XmlPullParser.END_DOCUMENT)
{
switch (event)
{
case XmlPullParser.START_DOCUMENT:
videos=new ArrayList<Video>();
break;
case XmlPullParser.START_TAG:
if("video".equals(parser.getName()))
{
video=new Video();
video.setId(new Integer(parser.getAttributeValue(0)));
}
if(video!=null)
{
if("title".equals(parser.getName()))
{
video.setTitle(parser.nextText());
}
else if("timelength".equals(parser.getName()))
{
video.setTimelength(new Integer(parser.nextText()));
}
}
break;
case XmlPullParser.END_TAG:
if("video".equals(parser.getName()))
{
videos.add(video);
video=null;
}
break;
}
event=parser.next();
}

return videos;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: