DOM4J xml打印原文

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

import org.dom4j.Attribute;
import org.dom4j.CDATA;
import org.dom4j.Comment;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.Text;
import org.dom4j.io.SAXReader;
import org.junit.Test;


public class xmlParse {
    @Test
    public void rootElement() throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("./lib/book.xml"));
        Element rootElement = document.getRootElement();
        printOrigionXmlContent(rootElement);
    
    }
    
    public void printOrigionXmlContent(Element element) {
        StringBuffer buffer = new StringBuffer();
        printContent(element, buffer);
        System.out.println(buffer.toString());
    }
    
    public void printContent(Element element, StringBuffer buffer) {
        buffer.append("<"+element.getName());
        List attributes = element.attributes();
        if (attributes != null) {
            for (Attribute attribute : attributes) {
                buffer.append(" "+attribute.getName()+"=\""+attribute.getValue()+"\"");
            }
        }
        buffer.append(">");
        
        Iterator nodeIterator = element.nodeIterator();
        while(nodeIterator.hasNext()) {
            Node node = nodeIterator.next();
            if (node instanceof Element) {
                Element eleNode = (Element) node;
                
                printContent(eleNode, buffer);
            }
            
            if (node instanceof Text) {
                Text text = (Text) node;
                buffer.append(text.getText());
            }
            if (node instanceof CDATA) {
                CDATA dataNode = (CDATA) node;
                buffer.append(dataNode.getText());
            }
            if (node instanceof Comment) {
                Comment comNode = (Comment) node;
                buffer.append(comNode.getText());
            }
            
        }
        buffer.append("");
    }
}

你可能感兴趣的:(DOM4J xml打印原文)