我正试图从下面的请求体中提取行项目值,并将其放入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>