用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/

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值