XmlPullParser解析xml

Java程序XML数据解析示例
本文介绍了一个使用Java程序从特定URL获取XML格式的数据并进行解析的例子。该程序通过HttpClient发起请求,然后利用XmlPullParser解析返回的XML数据,提取包括标题、状态等在内的多项信息。


new Thread(){

public void run() {

HttpClient httpClient = new DefaultHttpClient();

String uri  = "http://op.juhe.cn/wooyun/index?key=c2173ae5d7f2917c11f77c03c36df5aa&dtype=xml";

HttpGet httpGet = new HttpGet(uri);

try {

HttpResponse response = httpClient.execute(httpGet);

if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){

InputStream input = response.getEntity().getContent();

XmlPullParser xp = Xml.newPullParser();

xp.setInput(input, "utf-8");

int event = xp.getEventType();

List<Item> item_list = null ;

Item item = null ;

while(event!=XmlPullParser.END_DOCUMENT){

switch (event) {

case XmlPullParser.START_DOCUMENT:

 item_list = new ArrayList<Item>(); 

break;


case XmlPullParser.START_TAG:

if("item".equals(xp.getName())){

item = new Item();

}

if("title".equals(xp.getName())){

String title = xp.nextText();

item.setTitle(title);

}

if("status".equals(xp.getName())){

String status = xp.nextText();

item.setStatus(status);

}

if("user_harmlevel".equals(xp.getName())){

String user_harmlevel = xp.nextText();

item.setUser_harmlevel(user_harmlevel);

}

if("corp_harmlevel".equals(xp.getName())){

String corp_harmlevel = xp.nextText();

item.setCorp_harmlevel(corp_harmlevel);

}

if("corp_rank".equals(xp.getName())){

String corp_rank = xp.nextText();

item.setCorp_rank(corp_rank);

}

if("comment".equals(xp.getName())){

String comment = xp.nextText();

item.setComment(comment);

}

if("date".equals(xp.getName())){

String date = xp.nextText();

item.setDate(date);

}

if("timestamp".equals(xp.getName())){

String timestamp = xp.nextText();

item.setTimestamp(timestamp);

}

if("author".equals(xp.getName())){

String author = xp.nextText();

item.setAuthor(author);

}

if("link".equals(xp.getName())){

String link  = xp.nextText();

item.setLink(link);

}

if("id".equals(xp.getName())){

String id = xp.nextText();

item.setId(id);

}

break;

case XmlPullParser.END_TAG:

if("item".equals(xp.getName())){

item_list.add(item);

item = null ;

}

break ;

}

event = xp.next();

}

System.out.println(item_list.toString());

}

} catch (ClientProtocolException e) {

e.printStackTrace();

System.out.println(e.toString());

} catch (IOException e) {

e.printStackTrace();

} catch (XmlPullParserException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}.start();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值