使用Groovy Scripting将CSV转换为XML

时间:2016-05-20 15:03:23

标签: xml csv groovy

我有一个CSV文本文件,想要从中创建XML结构 输入看起来像这样:

1,MID,120,XX
2,MTS,223,yy

输出应为

<Root>
  <Row>
    <field1>1</field1>
    <field2>MID</field2>
    <field3>120</field3>
    <field4>XX</field4>
  </Row>
  <Row>
    <field1>2</field1>
    <field2>MTS</field2>
    <field3>223</field3>
    <field4>yy</field4>
  </Row>
</Root>

我是Groovy的新人,谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用CSV解析器和MarkupBuilder

@Grab('com.xlson.groovycsv:groovycsv:1.1')
import static com.xlson.groovycsv.CsvParser.parseCsv
import groovy.xml.*

def csv = '''1,MID,120,XX
2,MTS,223,yy
'''


def writer = new StringWriter()
def data = parseCsv(csv, readFirstLine: true)
new MarkupBuilder(writer).root {
    data.each { row ->
        Row {
            row.values.eachWithIndex { k, idx -> 
                 "Value$idx"(k)
            } 
        }
    }
}

println writer.toString()