如何将query_match用于肥皂UI



我在使用肥皂中使用的模拟编辑器

我得到了这个请求:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <methodName xmlns="http://tempuri.org/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <dataAreaId>error</dataAreaId>
      <pInvoiceList>
      <dataAreaId>NOTTHESAME</dataAreaId>
        ...
      </pInvoiceList>
    </methodName>
  </s:Body>
</s:Envelope>

我几乎尝试了每个Xpath表达式

什么要填充XPath框?

我尝试了:

  • //dataareaid/text()
  • //dataareaid/
  • //dataareaid
  • /dataareaid/text()
  • /dataareaid
  • /methodName/dataareaid/text()
  • /methodName/dataareaid/
  • /methodName/dataareaid

我终于根据USER1740631

的答案设法获取了它

看来我毕竟与名称空间有关。

正确的语法:

declare namespace tem='http://tempuri.org/';
//tem:methodName/tem:dataAreaId[1]

如果您不关心名称空间,则可以使用以下语法:

xPath1.0

//*[local-name() = 'methodName']/*[local-name() = 'dataAreaId'][1]

xPath2.0

//*:methodName/*:dataAreaId[1]

像这样写

第一个

//methodName [1]/dataareaid [1]

第二个

//methodName [1]/pinvoicelist [1]/dataareaid [1]

*如果您的多个节点在XML中具有相同名称,则应使用数字来定位该特定节点。

有一个很好的提示:定义测试柜的断言(或在模拟窗口中)时,在xpath-expression-field上方有一个按钮"声明"。直到您指出鼠标销钉的指向它,它实际上并不像一个按钮,所以我一开始没有意识到它。

只需单击soapui(实际上我使用5.2.1)的按钮即可为您添加声明仪式,您可以使用。

我发现该功能巧合,因为它并不可见。也许这也可以帮助...

最新更新