复杂的pull解析x

/**
	 * 解析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;
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值