如果不为其设置,将会默认编码为utf-8,并且不会换行等,生成的XML就会不美观,在网上搜索了,原到有采用这样设置编码的:
Document doc = ... //内存中已构造好的jdom Document对象 XMLOutputter output = new XMLOutputter(2, true, "GB2312"); // 2 是指缩进2个字符, true表示用换行,---增强可读性 FileOutputStream out = new FileOutputStream(fileName); output.output(doc, out);
我看了一下贴子的时间,是2002年,有可能那个时候JDOM还支持这个构造方法,现在我看已经没有了,他已经将这一块功能给剥离了出来,形成了Format,所有的设置都在该类当中处理,这样设置:
XMLOutputter out; Format format = Format.getCompactFormat(); format.setEncoding("gb2312"); format.setIndent(" "); out = new XMLOutputter(format); out.output(xmlDoc, new FileOutputStream("xml文件路径"));
setEncoding就是设置编码了
setIndent是设置分隔附的意思,一般都是用空格,就是当你新节点后,自动换行并缩进,有层次感,如果这样写setIndent(""),就只有换行功能,而不会缩进了,如果写成setIndent(null),这样就即不换行也不缩进,全部以一行显示了,默认的就是这样的效果,不好看得。