SOAPUI响应输出优化:实现每个条目单独换行写入文件
轻松搞定Groovy脚本输出格式问题
很简单的修改就能满足你的需求!核心就是把原来列表默认的toString()输出,换成用换行符拼接每个元素的方式。
先补全你提到的代码片段,假设原来的逻辑是这样的:
import groovy.xml.XmlSlurper def xml = new XmlSlurper().parseText(new File('input.xml').text) // 这里替换成你实际要提取的目标标签名 def targetItems = xml.'**'.findAll { it.name() == 'yourTargetTag' }.collect { it.text() } // 原来的输出方式,导致所有内容挤在一行带括号逗号 new File('output.txt').text = targetItems.toString()
只需要把输出那一行改成用join('\n')拼接列表元素,就能让每个条目单独占一行:
import groovy.xml.XmlSlurper def xml = new XmlSlurper().parseText(new File('input.xml').text) def targetItems = xml.'**'.findAll { it.name() == 'yourTargetTag' }.collect { it.text().trim() } // 用换行符连接所有元素,完美输出你想要的格式 new File('output.txt').text = targetItems.join('\n')
额外实用小技巧:
.trim()可以帮你清理每个条目里可能存在的多余空格或换行,让输出更干净;- 如果你想去掉示例里出现的重复条目,只需要在
collect之后加上.unique():def targetItems = ...collect{...}.unique(),这样重复的ID就只会出现一次; - 要是你需要Windows风格的换行(
\r\n),把join('\n')换成join('\r\n')就行。
修改后的输出文件内容会变成:
88881028167 88881028168 88881028176 88881028177 88881028175 88881028166 88881028170
内容的提问来源于stack exchange,提问作者PhilH
相关产品推荐
相关产品推荐

