我有这样的SOAP XML数据。
testpmd> show port stats all
######################## NIC statistics for port 0 ########################
RX-packets: 7467716 RX-missed: 9751220 RX-bytes: 11335992888
RX-errors: 0
RX-nombuf: 980047
TX-packets: 0 TX-errors: 0 TX-bytes: 0
Throughput (since last show)
Rx-pps: 40950
Tx-pps: 0
############################################################################
######################## NIC statistics for port 1 ########################
RX-packets: 0 RX-missed: 0 RX-bytes: 0
RX-errors: 0
RX-nombuf: 0
TX-packets: 7450911 TX-errors: 0 TX-bytes: 11310482898
Throughput (since last show)
Rx-pps: 0
Tx-pps: 40946
############################################################################
从上面的响应/ XML中,我必须从每个行集中收集 OBJ_ID,REL_OBJ_ID, CUST_MODEL_CD 和 TYPE_CD 标记值四个值将作为参数传递给另一个WebService请求。
仅供参考:我在SOAPUI工具中使用Groovy Scripting。
如果您提供任何样本,对我有用..
由于
答案 0 :(得分:1)
这样的事情应该收集重新评估的字段:
def xml = new XmlSlurper().parseText(resultsText)
List<groovy.util.slurpersupport.NodeChild> list =
xml?.ResultSet?.Row?.collect{it.OBJ_ID + it.REL_OBJ_ID + it.CUST_MODEL_CD + it.TYPE_CD}
输出list.toString()
:
[[1371718, 1350658, CESE, DRVD], [11983064, 1350658, CESE, DRVD], [13613079, 1350658, CI, DRVD]]
对于脚本断言和提供的响应:
def xml = new XmlSlurper().parseText(messageExchange.response.responseContent)
List<groovy.util.slurpersupport.NodeChild> list =
xml?.ResultSet?.Row?.collect{it.OBJ_ID + it.REL_OBJ_ID + it.CUST_MODEL_CD + it.TYPE_CD}
assert !(list.isEmpty())
assert (list.size() == 3)
答案 1 :(得分:1)
如果您的XML文档有效,您可以获得所有OBJ_ID
的列表(作为示例),如下所示:
def xml = '''<Results>...</Results>'''
def results = new XmlSlurper().parseText(xml)
results?.ResultSet?.Row?.OBJ_ID.each {
println(it)
}
以上代码应打印:
1371718
11983064
13613079
如果你想收集它们:
List objIds = results?.ResultSet?.Row?.OBJ_ID.collect{it}
println(objIds)
希望它有所帮助。