dom4j⽣成xml时,属性值中的回车换⾏问题⾸先属性中的回车换⾏对我来说⾮常有⽤,可是在使⽤过程中发现dom4j⾃动把回车换⾏去掉了。
我需要⽣成的部分xml是这样的。
<data>
@H=16*16
@C=60
我的中国
@I=000
@K=2
@O=000
@Q
</data>
⽣成xml的部分代码
Jav a代码
1. try {
2. StringWriter writer = new StringWriter();
3. OutputFormat format = atePrettyPrint();
4. format.setEncoding("GB2312");
5. XMLWriter xmlwriter = new XMLWriter(writer, format);
6. xmlwriter.write(document);
7. returnValue = String();
8. } catch (Exception ex) {
9. ex.printStackTrace();
10. }
⽤如上代码后⽣成xml的结果为
<data>@H=16*16 @C=60 我的中国 @I=000 @K=2 @O=000 @Q</data>
证实在⽣成xml前的代码有回车换⾏后,详细想“⼀定是dom4j的问题“
问题就出在atePrettyPrint();这上。
Jav a代码
1. /**
2. * A static helper method to create the default pretty printing format. This
3. * format consists of an indent of 2 spaces, newlines after each element and
4. * all other whitespace trimmed, and XMTML is false.
5. *
6. * @return DOCUMENT ME!
7. */
8. public static OutputFormat createPrettyPrint() {
9. OutputFormat format = new OutputFormat();
10. format.setIndentSize(2);
11. format.setNewlines(true);
12. format.setTrimText(true);
13. format.setPadText(true);
14.
15. return format;
16. }
17.
18. /**
19. * A static helper method to create the default compact format. This format
20. * does not have any indentation or newlines after an alement and all other
使用dom4j解析xml文件21. * whitespace trimmed
22. *
23. * @return DOCUMENT ME!
24. */
25. public static OutputFormat createCompactFormat() {
26. OutputFormat format = new OutputFormat();
27. format.setIndent(false);
28. format.setNewlines(false);
29. format.setTrimText(true);
30.
31. return format;
32. }
createPrettyPrint()⽅法中有
format.setTrimText(true);
问题就出在这⾥。
将format.setTrimText(false); 即可
OutputFormat format = atePrettyPrint();
format.setEncoding("utf-8");// 设置XML⽂件的编码格式
format.setLineSeparator("\n");
format.setTrimText(false);
format.setIndent(" ");
Document doc = ateDocument();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论