XML文件操作(四)

  • 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);
		}
	}
}

读取输出:

猜你喜欢

转载自blog.csdn.net/qq_37575994/article/details/100083234
今日推荐