dom4j基于sax事件处理

package com.px.dom4j;

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

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import org.dom4j.ElementPath;
import org.dom4j.io.SAXReader;

public class ElementHandlerTest implements ElementHandler{

	@Override
	public void onEnd(ElementPath arg0) {
		Element elt=arg0.getCurrent();
		Element name=elt.element("name");
		Element age=elt.element("age");
		String s1=name.getText();
		String s2=age.getText();
		System.out.print("<"+name.getQualifiedName()+">");
		System.out.print(s1);
		System.out.println("</"+name.getQualifiedName()+">");
		System.out.print("<"+age.getQualifiedName()+">");
		System.out.print(s2);
		System.out.println("</"+age.getQualifiedName()+">");
	}

	@Override
	public void onStart(ElementPath arg0) {
		
	Element stu=arg0.getCurrent();
	List list=stu.attributes();
	Iterator<Attribute> it=list.iterator();
	while(it.hasNext()){
		Attribute att=it.next();
		String val1=att.getName();
		String val2=att.getText();
		System.out.println(val1+"=\""+val2+"\"");
	}
		
	}
	public static void main(String[] args) {
		SAXReader sr=new SAXReader();
		try {
			sr.addHandler("/students/student", new ElementHandlerTest());
			Document doc=sr.read("students.xml");			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	
	
	

}
出现的效果:
sn="01"
<name>张三</name>
<age>18</age>
sn="02"
<name>李四</name>
<age>20</age>

你可能感兴趣的:(xml)