从具有多个数据的xpath位置验证数据

苏米思

我有如下所示的XML,我需要使用以下具有相同名称(附加索引)的大量数据来验证XML。

我不想为每个名称,移动电话等提供单独的列。因此在示例中,我传递的是sum,men,1212121212,682312; suj,men,2212121212,682312 **; ** suu,men,3212121212,682312 OR我可以以JSON格式传递

1. What is the best way to do this without using Java Code. 
2. *def strVals=get response/Response/transaction/values 
    And print strVals 
 - Not printing any value 

 <Response>
       <RequestID>1</RequestID>
       <transaction>
          <values>
             <data name="firstName0">sum</data>
             <data name="lastName0">men</data>
             <data name="mobile0">1212121212</data>
             <data name="zip0">682312</data>
             <data name="firstName1">suj</data>
             <data name="lastName1">men</data>
             <data name="mobile1">2212121212</data>
             <data name="zip1">682312</data>
             <data name="firstName2">suu</data>
             <data name="lastName2">men</data>
             <data name="mobile2">3212121212</data>
             <data name="zip2">682312</data>
             <data name="firstName3">ssss</data>
             <data name="lastName3">mmmmmmm</data>
             <data name="mobile3">4212121212</data>
             <data name="zip3">682312</data>
          </values>
       </transaction>
    </Response>
彼得·托马斯

我将提供有关如何动态构建此XML的提示,其余的取决于您:

* def temp = <values></values>
* def data = [{first: 'John', value: 'foo'}, {first: 'Smith', value: 'bar'}]
* def fun = 
"""
function(x, i){ 
  var path = '/values/data[' + (i + 1) + ']';
  karate.set('temp', path + '/@name', 'firstName' + i);
  karate.set('temp', path, x.value);
}
"""
* karate.forEach(data, fun)
* print temp   

这将导致:

<values>
  <data name="firstName0">foo</data>
  <data name="firstName1">bar</data>
</values>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章