用java将xml写成树形结构
·
在用Java编写代码写xml文件的时候,刚开始可能会出现写xml成功了,但是生成的文件却是紧凑的排列在一行的,比较混乱,比如下面这种:
需要用到org.dom4j 这个开源包
package user;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class treexml{
public static void main(String[] args) throws IOException {
//先创建一个Document对象,代表xml
Document doc = DocumentHelper.createDocument();
//创建根元素
Element root = doc.addElement("Users");
//创建子元素
Element oneson = root.addElement("zhangsan");
oneson.addElement("id").addText("0001");
oneson.addElement("city").addText("beijing");
oneson.addElement("age").addText("89");
//根元素上再增加一个子元素
Element twoson = root.addElement("lisi");
twoson.addElement("id").addText("0002");
twoson.addElement("city").addText("shanghai");
twoson.addElement("age").addText("58");
FileWriter os = new FileWriter(new File("D:\\test\\user.xml")); //利用的是IO流直接写的
doc.write(os);
os.flush();
os.close();
}
}
结果出来的是:

这样如果写入的是大量的数据的话,就看起来比较不清楚,所以要美化成树形结构比较好。
package user;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class treexml{
public static void main(String[] args) throws IOException {
//先创建一个Document对象,代表xml
Document doc = DocumentHelper.createDocument();
//创建根元素
Element root = doc.addElement("Users");
//创建子元素
Element oneson = root.addElement("zhangsan");
oneson.addElement("id").addText("0001");
oneson.addElement("city").addText("beijing");
oneson.addElement("age").addText("89");
//根元素上再增加一个子元素
Element twoson = root.addElement("lisi");
twoson.addElement("id").addText("0002");
twoson.addElement("city").addText("shanghai");
twoson.addElement("age").addText("58");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter os = new XMLWriter(new FileWriter(newFile("D:\\test\\user.xml")), format);
os.write(doc);
os.close();
}
}
再看下生成的文件:

这下就清晰多了。
第二种就只是多调用了OutputFormat这个类的createPrettyPrint方法,用这个类生成的方法去作用在xml的写入流上。
更多的关于org.dom4j 的用法,见:https://dom4j.github.io/
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)