Java解析xml文件

简单的一个小程序。

Java解析xml文件,先导入dom4j-1.6.1.jar包。

<?xml version="1.0" encoding="UTF-8"?>
<school>
	<class text="三国演义">
		<stu>
			<name>刘备</name>
			<gender>男</gender>
			<age>55</age>
		</stu>

		<stu>
			<name>诸葛亮</name>
			<gender>男</gender>
			<age>46</age>
		</stu>

		<stu>
			<name>小乔</name>
			<gender>女</gender>
			<age>8</age>
		</stu>
		
	</class>
	<class text="西游记">
		<stu>
			<name>孙悟空</name>
			<gender>男</gender>
			<age>550</age>
		</stu>

		<stu>
			<name>唐僧</name>
			<gender>男</gender>
			<age>35</age>
		</stu>

		<stu>
			<name>白骨精</name>
			<gender>女</gender>
			<age>200</age>
		</stu>
	</class>
	<class text="水浒传">
		<stu>
			<name>宋江</name>
			<gender>男</gender>
			<age>48</age>
		</stu>

		<stu>
			<name>武松</name>
			<gender>男</gender>
			<age>39</age>
		</stu>

		<stu>
			<name>孙二娘</name>
			<gender>女</gender>
			<age>35</age>
		</stu>
	</class>
</school>
******************************************************************************
public class XmlWork {

	public List<Stu> getStusAndBook() {

		try {
			// 实例化XML解析器
			SAXReader saxReader = new SAXReader();
			// 获得xml文件对象
			File file = new File("myxml.xml");
			// 解析器读取XML文件返回解析后的文档(doc)
			Document doc = saxReader.read(file);
			// 获得XML文档的根节点
			Element els = doc.getRootElement();
			// 根节点通过elements()方法,获得子节点的集合
			List<Element> classs = els.elements();

			List<Stu> list = new ArrayList<Stu>();

			for (Element el : classs) {

				// Book b=new Book();
				// b.setName(el.attributeValue("text"));
				Book b = new Book(el.attributeValue("text"));
				// 获得class标签里stu标签的集合
				List<Element> stus = el.elements();
				for (Element ee : stus) {

					// 获得name标签里的文本
					String name = ee.elementText("name");
					// 获得gender标签里的文本
					String gender = ee.elementText("gender");
					// 获得age标签里的文本
					int age = Integer.parseInt(ee.elementText("age"));
					Stu s = new Stu(name, gender, age, b);
					list.add(s);
				}
			}
			return list;
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	public List<Stu> getStus() {

		try {
			// 实例化XML解析器
			SAXReader saxReader = new SAXReader();
			// 获得xml文件对象
			File file = new File("myxml.xml");
			// 解析器读取XML文件返回解析后的文档(doc)
			Document doc = saxReader.read(file);
			// 获得XML文档的根节点
			Element els = doc.getRootElement();
			// 根节点通过elements()方法,获得子节点的集合
			List<Element> classs = els.elements();
			List<Stu> list = new ArrayList<Stu>();
			// 遍历根节点里的子元素集合
			for (Element el : classs) {
				// 获得name标签里的文本
				String name = el.elementText("name");
				// 获得gender标签里的文本
				String gender = el.elementText("gender");
				// 获得age标签里的文本
				int age = Integer.parseInt(el.elementText("age"));

				Stu s = new Stu(name, gender, age);

				list.add(s);
			}

			return list;
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return null;
	}

}
************************************************************************************
public class Test {

<span style="white-space:pre">	</span>public static void main(String[] args) {

<span style="white-space:pre">		</span>XmlWork xw = new XmlWork();

<span style="white-space:pre">		</span>List<Stu> list = xw.getStusAndBook();

<span style="white-space:pre">		</span>for (Stu stu : list) {
<span style="white-space:pre">			</span>System.out.println(stu.getName() + "\t" + stu.getGender() + "\t"
<span style="white-space:pre">					</span>+ stu.getAge() + "\t" + stu.getBook().getName());
<span style="white-space:pre">		</span>}


<span style="white-space:pre">	</span>}
}
************************************************************************************
 
public class Book {

	private String name;

	public Book() {
		// TODO Auto-generated constructor stub
	}

	public Book(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}
************************************************************************************
 
public class Stu {


<span style="white-space:pre">	</span>private String name;
<span style="white-space:pre">	</span>private String gender;
<span style="white-space:pre">	</span>private int age;
<span style="white-space:pre">	</span>private Book book = new Book();


<span style="white-space:pre">	</span>public Stu() {
<span style="white-space:pre">		</span>// TODO Auto-generated constructor stub
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public Stu(String name, String gender, int age) {
<span style="white-space:pre">		</span>super();
<span style="white-space:pre">		</span>this.name = name;
<span style="white-space:pre">		</span>this.gender = gender;
<span style="white-space:pre">		</span>this.age = age;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public Stu(String name, String gender, int age, Book book) {
<span style="white-space:pre">		</span>super();
<span style="white-space:pre">		</span>this.name = name;
<span style="white-space:pre">		</span>this.gender = gender;
<span style="white-space:pre">		</span>this.age = age;
<span style="white-space:pre">		</span>this.book = book;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public String getName() {
<span style="white-space:pre">		</span>return name;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public void setName(String name) {
<span style="white-space:pre">		</span>this.name = name;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public String getGender() {
<span style="white-space:pre">		</span>return gender;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public void setGender(String gender) {
<span style="white-space:pre">		</span>this.gender = gender;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public int getAge() {
<span style="white-space:pre">		</span>return age;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public void setAge(int age) {
<span style="white-space:pre">		</span>this.age = age;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public Book getBook() {
<span style="white-space:pre">		</span>return book;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public void setBook(Book book) {
<span style="white-space:pre">		</span>this.book = book;
<span style="white-space:pre">	</span>}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值