package com.jadyer.demo.xml;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.XMLWriter;import java.io.IOException;/**
* Dom4j读取XML
*
*/publicclassDom4jDemo{publicstaticvoidmain(String[] args)throws IOException, DocumentException {xmlRead();xmlWrite();}privatestaticvoidxmlRead()throws DocumentException {////读取XML文件获取Document对象//Document document = new SAXReader().read(new File("D:/testXML.xml"));////读取XML文本内容获取Document对象
Document document = DocumentHelper.parseText("<?xml version=\"1.0\" encoding=\"UTF-8\"?><users><user><id>123</id><name> Jadyer</name></user></users>");
System.out.println(((Element)document.selectObject("/users/user/id")).getText());
System.out.println(((Element)document.selectObject("/users/user/name")).getTextTrim());}privatestaticvoidxmlWrite()throws IOException {//Document对象代表整个xml文档
Document document = DocumentHelper.createDocument();//rootElement代表文档根元素
Element rootElement = document.addElement("users");//增加一个注释
rootElement.addComment("This is a comment!");//增加一个<user>标签
Element userElement11 = rootElement.addElement("user");//设定不同的<user>下面的子标签
Element idElement11 = userElement11.addElement("id");
Element nameElement11 = userElement11.addElement("name");
Element ageElement11 = userElement11.addElement("age");
Element addressElement11 = userElement11.addElement("address");//为各个子标签赋值
idElement11.setText("1");
nameElement11.setText("Jadyer");
ageElement11.setText("24");
addressElement11.setText("BeiJing");//再加一个子标签<user>
Element userElement22 = rootElement.addElement("user");
Element idElement22 = userElement22.addElement("id");
Element nameElement22 = userElement22.addElement("name");
Element ageElement22 = userElement22.addElement("age");
Element addressElement22 = userElement22.addElement("address");
idElement22.setText("2");
nameElement22.setText("Moon");
ageElement22.setText("23");
addressElement22.setText("HaerBin");//设定输出自动缩进及编码
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");////输出到文件//XMLWriter writer = new XMLWriter(new FileWriter("D:/testXML.xml"), format);//输出到控制台
XMLWriter writer =newXMLWriter(format);
writer.write(document);
writer.flush();
writer.close();}}
生成的XML,控制台输出如下
<?xml version="1.0" encoding="UTF-8"?><users><!--This is a comment!--><user><id>1</id><name>Jadyer</name><age>24</age><address>BeiJing</address></user><user><id>2</id><name>Moon</name><age>23</age><address>HaerBin</address></user></users>