Вот рабочий пример ответа здесь .
Предположим, что у нас есть XML-файлы этой формы:
<composer>
<name>Wolfgang Mozart</name>
<born>1756</born>
</composer>
Затем мы можем создать список проанализированных XML-документов из каждого .xml
файла в текущем каталоге (или в зависимости от того, что вам нужно):
def composers = []
new File(".").eachFile { def file ->
if (file.name ==~ /.*\.xml/) {
composers << new XmlSlurper().parse(file)
}
}
Затем мы могли бы использовать StreamingMarkupBuilder
для создания унифицированного XML-документа. Обратите внимание, что эта разметка смешивается со списком composers
, созданным выше:
def xml = new StreamingMarkupBuilder().bind {
root {
composers.each { c ->
mkp.yield c
}
}
}.toString()
То есть документ выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<composer>
<name>Wolfgang Mozart</name>
<born>1756</born>
</composer>
<composer>
<name>JS Bach</name>
<born>1685</born>
</composer>
...
</root>
Изменение решения для ваших локальных целей должно быть простым.