Groovy脚本将xml转换为csv并保持空格不变

lsmd5eda  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(172)

我正在尝试编写一个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中也应该保持相同的空格。到目前为止,空格被忽略了。您能帮帮我吗?我需要改变我的方法吗?

ljo96ir5

ljo96ir51#

使用keepWhitespace:true。这应该可以解决问题。
def content = new XmlSlurper(keepWhitespace:true).parseText(input)

相关问题