如何使用MarkupBuilder从数据库为每条记录创建一个XML文件?

时间:2014-07-01 15:32:09

标签: xml grails groovy

我对Groovy很新,所以这是我的第一个挑战: - )

我需要根据数据库查询的结果创建XML文件。

我可以创建一个包含DB表中所有记录的XML文件:

FILE.XML

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <Part>12345</Part>
</items>
<items>
  <Part>67890</Part>
</items>

但我需要的是每个记录创建一个文件而不是一个包含所有记录的文件:

FILE1.XML

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <Part>12345</Part>
</items>

FILE2.XML

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <Part>67890</Part>
</items>

有没有人知道是否有一种使用groovy的MarkupBuilder创建多个XML文件的简单方法?

1 个答案:

答案 0 :(得分:1)

你可以这样做......

class Part {
    String partNumber
}

def parts = // get a List of Part objects

parts.eachWithIndex { Part p, int idx ->
    new File("FILE${idx + 1}.xml").withWriter { writer ->
        def builder = new groovy.xml.MarkupBuilder(writer)
        builder.items {
            part(p.partNumber)
        }
    }
}

这将创建类似于FILE1.xml和FILE2.xml的文件:

<items>
    <part>12345</part>
</items>

我希望有所帮助。