soap响应的Groovy变换向量

soap响应的Groovy变换向量,soap,vector,groovy,Soap,Vector,Groovy,我正在使用groovey和soapUI迈出第一步: 我的问题是如何将一个向量从soap响应转换为一个列表,然后断言vecorts元素的值 回答是这样的 <![CDATA[<Vector> <Object> <pk>1</pk> <valueA>B</valueA> <valueB>20132</valueB> </Object> <Objec

我正在使用groovey和soapUI迈出第一步:

我的问题是如何将一个向量从soap响应转换为一个列表,然后断言vecorts元素的值

回答是这样的

<![CDATA[<Vector>
  <Object>
    <pk>1</pk>
    <valueA>B</valueA>
    <valueB>20132</valueB>
  </Object>
  <Object>
    <pk>2</pk>
    <valueA>C</valueA>
    <valueB>666</valueB>
  </Object>
</Vector>]]>

注意:我将在循环中为每个条目执行此操作,但我只是想说明我想要将响应向量与本地值进行比较,您也可以使用Groovy的XmlParser来处理响应数据

首先,只需解析xml 要获取响应项,请使用以下方法:

groovy> def xml = '''<Vector> 
groovy>   <Object> 
groovy>     <pk>1</pk> 
groovy>     <valueA>B</valueA> 
groovy>     <valueB>20132</valueB> 
groovy>   </Object> 
groovy>   <Object> 
groovy>     <pk>2</pk> 
groovy>     <valueA>C</valueA> 
groovy>     <valueB>666</valueB> 
groovy>   </Object> 
groovy> </Vector>''' 
groovy> def records = new XmlParser().parseText(xml) 
groovy> println records.Object.pk[0].text() //return from <pk>1</pk> 
groovy> println records.Object.pk[1].text() //return from <pk>2</pk> 
groovy> println records.Object.valueB[0].text() //return from <valueB>20132</valueB> 
groovy> println records.Object.valueB[1].text() //return from <valueB>666</valueB> 
groovy> println records.Object.valueA[0].text() //return from <valueA>B</valueA> 
groovy> println records.Object.valueA[1].text() //return from <valueA>C</valueA> 

Output:
1
2
20132
666
B
C
groovy>defxml=''
groovy>
groovy>1
groovy>B
groovy>20132
groovy>
groovy>
groovy>2
groovy>C
groovy>666
groovy>
groovy>“”
groovy>def records=new XmlParser().parseText(xml)
groovy>println records.Object.pk[0].text()//从1返回
groovy>println records.Object.pk[1].text()//从2返回
groovy>println records.Object.valueB[0].text()//从20132返回
groovy>println records.Object.valueB[1].text()//从666返回
groovy>println records.Object.valueA[0].text()//从B返回
groovy>println records.Object.valueA[1].text()//从C返回
输出:
1.
2.
20132
666
B
C

除此之外,请检查来源查看此处

文档如何?e、 到目前为止,谢谢你。我以后再看。今天早上我的办公桌上扔了很多不同的东西,所以我现在必须打破groovy脚本。@bish,好的,如果你有任何问题,请让我知道我的groovy脚本。谢谢你的回答,它帮助我完成了我的事情!
groovy> def xml = '''<Vector> 
groovy>   <Object> 
groovy>     <pk>1</pk> 
groovy>     <valueA>B</valueA> 
groovy>     <valueB>20132</valueB> 
groovy>   </Object> 
groovy>   <Object> 
groovy>     <pk>2</pk> 
groovy>     <valueA>C</valueA> 
groovy>     <valueB>666</valueB> 
groovy>   </Object> 
groovy> </Vector>''' 
groovy> def records = new XmlParser().parseText(xml) 
groovy> println records.Object.pk[0].text() //return from <pk>1</pk> 
groovy> println records.Object.pk[1].text() //return from <pk>2</pk> 
groovy> println records.Object.valueB[0].text() //return from <valueB>20132</valueB> 
groovy> println records.Object.valueB[1].text() //return from <valueB>666</valueB> 
groovy> println records.Object.valueA[0].text() //return from <valueA>B</valueA> 
groovy> println records.Object.valueA[1].text() //return from <valueA>C</valueA> 

Output:
1
2
20132
666
B
C