使用 Groovy 脚本循环并合并文件夹中的 XML 个文件到一个 HTML 文件?
Loop and merge XML files in a folder to one HTML file using Groovy script?
我正在使用 ReadyAPI 并尝试获取我的报告生成,所以我正处于为每个测试用例生成所有 xml 文件的位置,我需要合并它们。
所以基本上我只有文件所在的路径,比方说 "C:\Path",XML 个文件所在的路径。
我找到了单个文件的解析器,以及将一个 XML 文件的一些信息附加到另一个 XML 文件的方法,但我还没有找到遍历所有 [=25] 的方法=] 文件并将其内容转储到新文件中...
如有任何帮助或指示,我们将不胜感激...
杰克逊。
这个答案有一个工作示例 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>
针对您的本地目标更改解决方案应该是直截了当的。
我正在使用 ReadyAPI 并尝试获取我的报告生成,所以我正处于为每个测试用例生成所有 xml 文件的位置,我需要合并它们。
所以基本上我只有文件所在的路径,比方说 "C:\Path",XML 个文件所在的路径。
我找到了单个文件的解析器,以及将一个 XML 文件的一些信息附加到另一个 XML 文件的方法,但我还没有找到遍历所有 [=25] 的方法=] 文件并将其内容转储到新文件中...
如有任何帮助或指示,我们将不胜感激...
杰克逊。
这个答案有一个工作示例 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>
针对您的本地目标更改解决方案应该是直截了当的。