Java解析xml

UserList.xml

<?xml version="1.0" encoding="utf-8"?>
<userlist>
	<!--User对象-->
	<user id="100">
		<username>张三</username>
		<password>admin</password>
		<favoriteList>
			<favorite>篮球</favorite>
			<favorite>足球</favorite>
			<favorite>乒乓球</favorite>
		</favoriteList>
	</user>
	<user id="101">
		<username>李四</username>
		<password>admin1</password>
	</user>
	<user id="102">
		<username>王五</username>
		<password>admin2</password>
	</user>
</userlist>

java解析

package com.wxh.parse;

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import com.wxh.bean.UserBean;

public class Demo2 {
	public static void main(String[] args) {
		List<UserBean> userList = parseXml(new File("src\\UserList.xml"));
		for (UserBean user : userList) {
			System.out.println(user.toString());
		}
	}

	public static List<UserBean> parseXml(File source) {
		List<UserBean> userList = new ArrayList<UserBean>();

		
		SAXReader reader = new SAXReader();
		try {
			Document document = reader.read(source);
			// 解析
			// <userlist></userlist>
			Element root = document.getRootElement();
			Iterator<Element> userIte = root.elementIterator("user");
			while (userIte.hasNext()) {
				// <user></user>
				Element userEle = userIte.next();
				String id = userEle.attributeValue("id");
				String username = userEle.elementText("username");
				String password = userEle.elementText("password");
				
				// <favoriteList></favoriteList>
				Element favoriteListEle = userEle.element("favoriteList");

				List<String> favorites = new ArrayList<String>();				
				
				if (favoriteListEle != null) {
					Iterator<Element> favoriteIte = favoriteListEle
							.elementIterator("favorite");

					// 存放favorite
					while (favoriteIte.hasNext()) {
						// <favorite></favorite>
						String favoriteStr = favoriteIte.next().getText();
						// System.out.println(favoriteStr);
						favorites.add(favoriteStr);
					}
				}

				// 封装对象

				UserBean user = new UserBean();
				user.setId(id);
				user.setUsername(username);
				user.setPassword(password);
				user.setFavorites(favorites);

				// 添加到集合中
				userList.add(user);
			}

		} catch (DocumentException e) {
			e.printStackTrace();
		}

		return userList;
	}
}

需要额外的jar包:

http://download.youkuaiyun.com/detail/hoho_12/9599041


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值