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小时内删除。