Dom4j处置XML

Dom4j处理XML

今天自己学习了Dom4j,做了个简单的例子,不多说直接代码!

 

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

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

public class Dom4jTest {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws Exception {
		//流方式读取Xml文件
		SAXReader sr = new SAXReader();
		//将读的文件定义为一个Document对象
		Document doc = sr.read(new File("src/data.xml"));
		//获得该Document对象的根元素
		Element rootelement = doc.getRootElement();
		//遍历该元素下的所有子元素
		for (Iterator<Element> i = rootelement.elementIterator(); i.hasNext();) {
			Element e = i.next();
			//后台打印子元素的名字和包含的数据
			System.out.println(e.getName() + ":"
					+ e.getData().toString().trim());
			//遍历该子元素的所有子元素
			for (Iterator<Element> i1 = e.elementIterator(); i1.hasNext();) {
				Element e1 = i1.next();
				//遍历该子元素的所有属性
				for (Iterator<Attribute> i2 = e1.attributeIterator(); i2
						.hasNext();) {
					Attribute a = i2.next();
					//打印属性的名字和值
					System.out.println(a.getName() + ":" + a.getValue());
				}
			}
		}
	}
}

 

<school>
	<class>班级1
		<student name="zhangsan" age="13"></student>
		<student name="lisi" age="14"></student>
		<student name="wangwu" age="15"></student>
	</class>
	<class>班级2</class>
	<class>班级3</class>
</school>
 

class:班级1
name:zhangsan
age:13
name:lisi
age:14
name:wangwu
age:15
class:班级2
class:班级3
 

现在XML解析的方式主要是DOM和SAX,区别大家可以自己去谷老师一下,本例是用SAX的方式读取xml文件,希望可以对刚学习的同学有些帮助。