Java解析xml文件

来源:互联网 发布:淘宝自动回复短语大全 编辑:程序博客网 时间:2024/05/20 16:34

简单的一个小程序。

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 blocke.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 blocke.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>}}
0 0