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;
}
}