groovy - 使用PrintWriter不显示没有新行的输出

时间:2014-04-17 13:46:07

标签: xml groovy printwriter

我进行了多次测试并注意到如果xml文件没有被正确识别,PrintWriter的输出(缩进选项设置为false)包含换行符

正确缩进:

<node bla="ste"> 
   <mp inf="blabl">text</mp>
   <mp inf="blabl">text</mp>
   <mp inf="blabl">text</mp>
   <mp inf="blabl">text</mp>
   ...  
</node>

没有正确缩进:

<node bla="ste"> <mp inf="blabl">text</mp><mp inf="blabl">
text</mp><mp inf="blabl">text</mp>
   <mp inf="blabl">text</mp>
  ...
</node>


def xml= new XmlParser().parse(xmlFile)
StringWriter writer = new StringWriter()
new XmlNodePrinter(new IndentPrinter(new PrintWriter(writer), '', false)).print(xml)

println  writer.toString()

我没有更改xml文件的可能性,所以在这种情况下如何在没有新行的情况下获得PrintWriter的输出?

1 个答案:

答案 0 :(得分:1)

您没有显示使用显示为输入的两个块的输出,但我猜测使用第二个块作为输入时XML输出中仍有换行的原因是,是否有换行符在数据中。第二&lt; mp&gt;标签包含文本“\ ntext”。

IndentPrinter更改格式,但不更改单个标记的数据有效负载,即它可以更改两个标记声明或两个关闭标记之间的部分,但不能更改标记声明和它的关闭标记之间的部分。

如果你想要删除所有换行符,你需要解析XML,然后处理它以从每个标记的.text()部分中删除所有换行符,然后像你一样使用IndexPrinter输出它。