2012-01-16 105 views
0

我想添加一个回车符和换行字符来格式化XML,以便每个元素都出现在MS记事本中它自己的行上。回车和换行XML - Java

我尝试了这里所建议的:How to pretty print XML from Java?。在每个关闭元素后添加换行符。对于更复杂的编辑器,如richText和gedit等,换行符就足够了。然而,在记事本中,我似乎也需要一个回车符,以便让每个元素都在它自己的行上。

有没有办法通过改变文件转换器的属性来介绍?如果没有,有没有办法做到这一点,而不必分析整个XML文档并手动添加它们?

+2

请注意,XML规范的[新行处理部分](http://www.w3.org/TR/REC-xml/#sec-line-ends)指出XML中需要的换行符文件是换行符。 – buc 2012-01-16 23:37:16

+0

@buc我看到了,所以添加回车符将会超出XML标准规范吗? – travega 2012-01-16 23:55:19

+1

@travega我不认为元素之间的空白是重要的,所以不是真的。该规范可能试图说的是,显示XML的软件不应该要求您为新行使用不同的字符。 – millimoose 2012-01-17 00:07:04

回答

3

你可以自己实现Writer,它包装了一个现有的Writer/OutputStream,并且在写入时用“\ r \ n”替换“\ r \ n”。如果XML文本中的空白不重要,这应该足够好。然后,将包装的实例传递给输出XML的代码。

1

只需做一个简单的替换全部\><>^p<其中^p是在MS Word中特殊格式的段落标记。