Xml groovy—使用PrintWriter不需要';t在没有新行的情况下显示输出

Xml groovy—使用PrintWriter不需要';t在没有新行的情况下显示输出,xml,groovy,printwriter,Xml,Groovy,Printwriter,我执行了几个测试,发现如果xml文件没有正确识别,PrintWriter的输出(indent选项设置为false)包含换行符 缩进正确: <node bla="ste"> <mp inf="blabl">text</mp> <mp inf="blabl">text</mp> <mp inf="blabl">text</mp> <mp inf="blabl">text</

我执行了几个测试,发现如果xml文件没有正确识别,PrintWriter的输出(indent选项设置为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>

我无法更改xml文件,因此在这种情况下,如何使PrintWriter的输出没有新行?

您不显示使用显示为输入的两个块的输出,但我猜当使用第二个块作为输入时,xml输出中仍有新行的原因,数据中有一个换行符。第二个标记包含文本“\ntext”

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


如果要删除所有换行符,则需要解析XML,然后对其进行处理以删除每个标记的.text()部分中的所有换行符,然后使用IndexPrinter进行输出。

您应该添加当前输出的内容,以及您认为错误或不正确的原因。当我读到问题时,使用第一个块作为输入有效,但使用第二个块作为输入无效?
def xml= new XmlParser().parse(xmlFile)
StringWriter writer = new StringWriter()
new XmlNodePrinter(new IndentPrinter(new PrintWriter(writer), '', false)).print(xml)

println  writer.toString()