Зацикливать и объединять файлы XML в папке в один файл HTML, используя скрипт Groovy? - PullRequest
0 голосов
/ 29 июня 2018

Я использую ReadyAPI и пытаюсь получить генерацию своих отчетов, поэтому я нахожусь в точке, где генерируются все xml-файлы для каждого теста, и мне нужно объединить их.

Таким образом, в основном у меня есть только путь, где находятся файлы, скажем, "C: \ Path", где лежат файлы XML.

Я нашел парсеры для отдельных файлов и способы добавления некоторой информации одного XML-файла в другой XML-файл, но я не нашел способа перебрать все XML-файлы и вывести их содержимое в новый файл ...

Любая помощь или указание может быть высоко ценится ...

Jackson.

1 Ответ

0 голосов
/ 01 июля 2018

Вот рабочий пример ответа здесь .

Предположим, что у нас есть 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>

Изменение решения для ваших локальных целей должно быть простым.

...