从 SoapUI 中的 Oracle SOA 响应中提取帐户 ID

Extract account ID from Oracle SOA response in SoapUI

我们有一个 Oracle SOA 网关设置,我们可以将 SOAP 请求传递到该网关。现在,我正在尝试使用 SoapUI 创建测试用例。在这个特别的例子中,我正在尝试创建一个客户帐户。我已经设置了框架,但在设置正确的 XPath 以从 SOAP 响应中提取帐户 ID 时遇到问题。

我从 SOA 网关得到的响应是:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/apps/hz/soaprovider/plsql/hz_cust_account_v2pub/create_cust_account__1/">
         <X_CUST_ACCOUNT_ID>1459660</X_CUST_ACCOUNT_ID>
         <X_ACCOUNT_NUMBER>58946</X_ACCOUNT_NUMBER>
         <X_PARTY_ID>3101110</X_PARTY_ID>
         <X_PARTY_NUMBER>215767</X_PARTY_NUMBER>
         <X_PROFILE_ID>3322847</X_PROFILE_ID>
         <X_RETURN_STATUS>S</X_RETURN_STATUS>
         <X_MSG_COUNT>0</X_MSG_COUNT>
         <X_MSG_DATA xsi:nil="true"/>
      </OutputParameters>
   </env:Body>
</env:Envelope>

据此,我试图提取返回的 X_CUST_ACCOUNT_ID,并将其放入 属性。我使用的 XPath 是

//OutputParameters/X_CUST_ACCOUNT_ID 

然而,这样做,我得到的只是一个错误,指出

"Missing match for Source XPath [//OutputParameters/X_CUST_ACCOUNT_ID]"

我花了几个小时尝试各种 XPath 表达式,但我得到的只是缺少匹配项或语法错误。

您忽略了 OutputParameters 也有一个由

定义的默认名称空间这一事实
xmlns="http://xmlns.oracle.com/apps/hz/soaprovider/plsql/hz_cust_account_v2pub/create_cust_account__1/"

要同时忽略此命名空间,您可以使用以下表达式:

//*[local-name()='OutputParameters']/*[local-name()='X_CUST_ACCOUNT_ID']