利用dom4j读取完整的xml文档

package gz.ksc.a_dom4j_read;

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

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

public class Demo3 {

/*
* 读取完整的xml文档
*  
*/
@Test
public void test()throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("./src/contact.xml"));

Element rootElement = doc.getRootElement();

StringBuffer sb = new StringBuffer();

getChildNodes(rootElement,sb);

System.out.println(sb.toString());

}


private void getChildNodes(Element elem, StringBuffer sb) {
sb.append("<"+elem.getName());

List<Attribute> list = elem.attributes();
if(list!=null){
for(Attribute attr : list){
sb.append( attr.getName()+"=\""+attr.getValue()+"\"");
}
}
sb.append(">");

Iterator<Node> it = elem.nodeIterator();

while(it.hasNext()){
Node node = it.next();

if(node instanceof Element){
Element el = (Element)node;
getChildNodes(el, sb);
}

if(node instanceof Text){
Text tx= (Text)node;
sb.append(tx.getText());
}
}

sb.append("</"+elem.getName()+">");
}


}

你可能感兴趣的:(利用dom4j读取完整的xml文档)