dom4j用访问者模式遍历

package com.px.dom4j;

import java.io.File;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.ProcessingInstruction;
import org.dom4j.VisitorSupport;
import org.dom4j.io.SAXReader;
//用访问者模式遍历树
public class Dom4jTest extends VisitorSupport{
	
	public void visit(Attribute node) {
		System.out.println(node.getName()+":="+node.getText());
	}

	@Override
	public void visit(Document document) {
       System.out.print("<?xml version=\"1.0\" encoding=\"GB2312\"?> ");
	}

	@Override
	public void visit(Element node) {
		 if(node.isTextOnly()){
			 System.out.println(node.getName()+" "+":="+node.getText());
		 }else{
			 System.out.println(node.getName());
		 }
	}

	@Override
	public void visit(ProcessingInstruction node) {
		System.out.println("<?"+node.getTarget()+node.getText()+"?>");
	}

public static void main(String[] args) {
	SAXReader sr=new SAXReader();
	try {
		Document doc=sr.read(new File("students.xml"));
		doc.accept(new Dom4jTest());		
		
	} catch (DocumentException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
}
出现的效果:

<?xml version="1.0" encoding="GB2312"?> <?xml-stylesheettype="text/xsl" href="students.xsl"?>
students
student
sn:=01
name :=张三
age :=18
student
sn:=02
name :=李四
age :=20

你可能感兴趣的:(xml,XSL)