What happens if you replace:
def writer = new FileWriter(newFileName) new XmlNodePrinter(new PrintWriter(writer)).print(xml)
from:
new File( newFilename ).withWriter { out -> printer = new XmlNodePrinter( out ) printer.preserveWhitespace = true printer.print( xml ) }
- change -
As indicated, it seems like it should be preserveWhitespace = false , however, if you try the following test code:
def x = """<langs type="current"> <language>Java</language> <language>Groovy</language> <language>JavaScript</language> </langs>""" def xml = new XmlParser().parseText( x ) xml.appendNode 'language', 'Ruby' def printIt = { node, pw -> println "With preserveWhitespace=$pw:" def s = new StringWriter() printer = new XmlNodePrinter( new PrintWriter( s ) ) printer.preserveWhitespace = pw printer.print( xml ) println s } printIt xml, true printIt xml, false
You get the conclusion:
With preserveWhitespace=true: <langs type="current"> <language>Java</language> <language>Groovy</language> <language>JavaScript</language> <language>Ruby</language> </langs> With preserveWhitespace=false: <langs type="current"> <language> Java </language> <language> Groovy </language> <language> JavaScript </language> <language> Ruby </language> </langs>
tim_yates
source share