8月 272011
■csv2xml.groovy
@Grapes([
@Grab(group = 'com.h2database', module = 'h2', version = '1.3.157'),
@GrabConfig(systemClassLoader = true)
])
//jarをロードする場合
//this.getClass().classLoader.rootLoader.addURL(new File("h2-1.3.157.jar").toURL())
import groovy.sql.Sql
import groovy.xml.MarkupBuilder
if(!args) System.exit(1)
memDB = Sql.newInstance("jdbc:h2:mem:", "org.h2.Driver")
String sql = """
select * from CSVREAD('${args[0]}',null,'UTF-8')
"""
xml = new MarkupBuilder()
xml.xml() {
xml.items() {
memDB.eachRow(sql) {row ->
xml.item(id:row.id) {
name(row.name)
price(row.price)
}
}
}
}
memDB.close()
■source.csv(UTF-8)
————————————————–
id, name, price
1, コーラ, 150
2, 葡萄酒, 980
3, 麦酒, 238
————————————————–
■実行
// 企業内からなどネット接続時にproxy経由が必要な場合
// set JAVA_OPTS=-Dhttp.proxyHost=proxy.xxxxx.co.jp -Dhttp.proxyPort=8080
groovy csv2xml.groovy source.csv
■結果(標準出力)
————————————————–
<xml>
<items>
<item id=’1′>
<name>コーラ</name>
<price>150</price>
</item>
<item id=’2′>
<name>葡萄酒</name>
<price>980</price>
</item>
<item id=’3′>
<name>麦酒</name>
<price>238</price>
</item>
</items>
</xml>
————————————————–
Sorry, the comment form is closed at this time.