我正在尝试编写一个groovy脚本来将xml转换为csv文件。
<Structure>
<Header>
<PlanNumber>123456</PlanNumber>
<HeaderRec>ABC</HeaderRec>
<Plan>1234</Plan>
<Filler> </Filler>
<CompanyName>Dummy</CompanyName>
</Header>
<Records>
<Record1>
<Field1>ABCD</Field1>
<Field2>ABCD</Field2>
<Field3>ABCD</Field3>
<Field4>ABCD</Field4>
<Field5>ABCD</Field5>
<Filler> </Filler>
</Record1>
<Record2>
<Field1>ABCD</Field1>
<Field2>ABCD</Field2>
<Filler> </Filler>
<Field4>ABCD</Field4>
<Field5>ABCD</Field5>
<Filler> </Filler>
</Record2>
</Records>
</Structure>
我的groovy脚本:
def content = new XmlSlurper().parseText(input)
def header = content.Header.children().collect().join(' ')
def csv = content.Records.children().inject(header){result, row -> [result,row.children().collect().join(' ')].join("\n")}
println csv.toString()
这是我得到的输出:
123456 ABC 1234 Dummy
ABCD ABCD ABCD ABCD ABCD
ABCD ABCD ABCD ABCD
脚本忽略了filler字段中的空格。我的要求是xml字段中的任何空格在csv中都应该保持完整。也就是说,如果字段中有7个空格,那么csv中也应该保持相同的空格。到目前为止,空格被忽略了。您能帮帮我吗?我需要改变我的方法吗?
1条答案
按热度按时间ljo96ir51#
使用
keepWhitespace:true
。这应该可以解决问题。def content = new XmlSlurper(keepWhitespace:true).parseText(input)
个