首页 > 解决方案 > 如何从带有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 个 lineItem 中的第一个项目值:

我得到的回应:

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

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

标签: arraysxmlxpatheachwiremock

解决方案


推荐阅读