使用Groovy脚本将文件夹中的XML文件循环并合并为一个HTML文件?

时间:2018-06-29 13:58:08

标签: groovy xml-parsing soapui

我正在使用ReadyAPI并尝试获取我的报告生成,所以现在我已经生成了每个测试用例的所有xml文件,因此我需要将它们合并。

所以基本上,我只有一个路径,即XML文件所在的路径,例如“ C:\ Path”。

我找到了单个文件的解析器,以及将一个XML文件的某些信息附加到另一个XML文件中的方法,但是我还没有找到遍历所有XML文件并将其内容转储到新文件中的方法...

任何帮助或指示都将不胜感激...

杰克逊。

1 个答案:

答案 0 :(得分:1)

此答案here有一个可行的示例。

我们假设我们具有以下形式的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>

为您的本地目标更改解决方案应该很简单。