Groovy 脚本将 xml 转换为 csv 保持空格不变
Groovy script to convert xml to csv keeping spaces intact
我正在尝试编写 groovy 脚本以将 xml 转换为 csv 文件。
输入 xml:
<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
脚本忽略了填充字段中的空格。我的要求是 xml 字段中的任何空格在 csv 中都应该是完整的。也就是说,如果该字段中有 7 个空格,则应在 csv 中保留相同的空格。到目前为止,空格被忽略了。
你能帮我么。我需要改变我的方法吗?
使用keepWhitespace:true
。那应该可以解决它。
def content = new XmlSlurper(keepWhitespace:true).parseText(input)
我正在尝试编写 groovy 脚本以将 xml 转换为 csv 文件。 输入 xml:
<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
脚本忽略了填充字段中的空格。我的要求是 xml 字段中的任何空格在 csv 中都应该是完整的。也就是说,如果该字段中有 7 个空格,则应在 csv 中保留相同的空格。到目前为止,空格被忽略了。 你能帮我么。我需要改变我的方法吗?
使用keepWhitespace:true
。那应该可以解决它。
def content = new XmlSlurper(keepWhitespace:true).parseText(input)