/**
* 解析XML文件
*/
private LinkedList<Tweet> xmlMethod(String result) {
try {
XmlPullParser parser = Xml.newPullParser();
parser.setInput(new InputStreamReader(new ByteArrayInputStream(
result.getBytes()), "utf-8"));
int eventType = parser.getEventType();
Tweet tweet = null;
LinkedList<Tweet> tweet2s = null;
List<User> user_list = null;
User user = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:// 文档开始事件,可以进行数据初始化处理
tweet2s = new LinkedList<Tweet>();
break;
case XmlPullParser.START_TAG:// 开始元素事件
String name = parser.getName();
if (name.equals("tweet")) {
tweet = new Tweet();
} else if (tweet != null) {
if ("id".equals(name)) {
tweet.setId(parser.nextText());// 如果后面是Text元素,即返回它的值
} else if ("portrait".equals(name)) {
tweet.setPortrait(parser.nextText());
} else if ("author".equals(name)) {
tweet.setAuthor(parser.nextText());
} else if ("authorid".equals(name)) {
tweet.setAuthorid(parser.nextText());
} else if ("body".equals(name)) {
tweet.setBody(parser.nextText());
} else if ("appclient".equals(name)) {
tweet.setAppclient(parser.nextText());
} else if ("commentCount".equals(name)) {
tweet.setCommentCount(parser.nextText());
} else if ("pubDate".equals(name)) {
tweet.setPubDate(parser.nextText());
} else if ("likeCount".equals(name)) {
tweet.setLikeCount(parser.nextText());
} else if ("isLike".equals(name)) {
tweet.setIsLike(parser.nextText());
} else if ("likeList".equals(name)) {
user_list = new ArrayList<User>();
} else if ("user".equals(name)) {
user = new User();
} else if ("name".equals(name)) {
user.name = parser.nextText();
} else if ("uid".equals(name)) {
user.uid = parser.nextText();
} else if ("portrait".equals(name)) {
user.portrait = parser.nextText();
}
}
break;
case XmlPullParser.END_TAG:// 结束元素事件
if (parser.getName().equals("user") && user != null) {
user_list.add(user);
user = null;
}
if (parser.getName().equals("tweet") && tweet != null) {
tweet.setLikeList(user_list);
tweet2s.add(tweet);
tweet = null;
}
break;
}
eventType = parser.next();
}
System.out.println(tweet2s.toString());
return tweet2s;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
复杂的pull解析x
最新推荐文章于 2021-12-09 17:38:03 发布