如何从具有wiremock中数组中的值的xml请求体中提取值



我正试图从下面的请求体中提取行项目值,并将其放入wiremock中的响应中。

请求:

**<request>
<lineItem>
<item> 
<name> name </name>
<quantity> 12 </quantity>
<type>type</type>
</item>
</ lineItem>
<lineItem>
<item> 
<name> name2 </name>
<quantity> 10 </quantity>
<type>type2</type>
</item>
</ lineItem>
</request>**

预期响应:

**<response>
<lineItem>
<item> 
<name> name </name>
<quantity> 12 </quantity>
<type>type</type>
</item>
</ lineItem>
<lineItem>
<item> 
<name> name2 </name>
<quantity> 10 </quantity>
<type>type2</type>
</item>
</ lineItem>
</response>**

我试过这样的东西:

<response>
{{#each (xPath request.body '/lineItem/item ') as |element| }}
<lineItem>
<item>  
<quantity>  (xPath request.body '//lineItem/item/quantity/text()'}}</quantity>  
</item>
</ lineItem>
</response>

但是对于请求中的2个不同的lineItem(如上所述(,我得到了3个lineItem值作为响应,并且总是得到所有3个lineItems:中的第一个项目值

我得到的回复:

**<response>
<lineItem>
<item> 
<quantity> 12 </quantity>
</item>
</ lineItem>
<lineItem>
<item> 
<quantity> 12 </quantity>
</item>
</ lineItem>
<lineItem>
<item> 
<quantity> 12 </quantity>
</item>
</ lineItem>
</response>**

有人能帮我解决这个问题吗?

我今天遇到了类似的问题。我还需要从请求中获得一个值列表,并根据收到的值创建尽可能多的对象作为响应
如果我们将解决方案转移到您的问题上,那么它将看起来像这样:

<response>
{{#each (xPath request.body '//lineItem/item/quantity') as |element| }}
<lineItem>
<item>  
<quantity>{{element.text}}</quantity>  
</item>
</lineItem>
{{/each}}
</response>

相关内容

  • 没有找到相关文章

最新更新