我正在嘗試撰寫一個 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>
我的常規腳本:
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 中保留相同的空格。截至目前,這些空間被忽略了。你能幫我么。我需要改變我的方法嗎?
uj5u.com熱心網友回復:
使用keepWhitespace:true. 那應該解決它。
def content = new XmlSlurper(keepWhitespace:true).parseText(input)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/484699.html
