- DOM4J
性能优异,功能强大,易用,下载地址:https://dom4j.github.io/
写入操作,显示如下,有格式
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Ignore;
import org.junit.Test;
public class Dom4j {
@Test
@Ignore
public void testWrite() {
Document doc=DocumentHelper.createDocument();//创建文档
Element books=doc.addElement("books");//根节点
Element book=books.addElement("book");
Element name=book.addElement("name");
Element author=book.addElement("author");
Element an=author.addElement("name");
Element ab=author.addElement("birthyear");
name.setText("dom4j书名");
an.setText("dom4j佚名");
ab.setText("dom4j作者年");
OutputFormat format=OutputFormat.createPrettyPrint();//设置输出编码
format.setEncoding("utf-8");
try {
XMLWriter write=new XMLWriter(new FileOutputStream("dom4j.xml") , format);
write.write(doc);
write.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testRead() {
File file=new File("dom4j.xml");//读取文件
SAXReader reader=new SAXReader();//建立SAX解析读取
Document doc=null;
try {
doc=reader.read(file);//读取文档
} catch (DocumentException e) {
e.printStackTrace();
}
Element root=doc.getRootElement();//取得根节点
Iterator iterator=root.elementIterator();//取得全部子节点
while(iterator.hasNext()){
Element book=(Element) iterator.next();//取得每一个book
String name=book.elementText("name");//取得name元素内容
System.out.println("name:"+name);
Element author=book.element("author");//取得author元素
String an=author.elementText("name");//取得name元素内容
System.out.println("作者name:"+an);
String ab=author.elementText("birthyear");//取得birthyear元素内容
System.out.println("作者birthyear:"+ab);
}
}
}
读取输出: