Извлечь идентификатор учетной записи из ответа Oracle SOA в SoapUI

У нас есть настройка шлюза Oracle SOA, на которую мы можем передавать запросы SOAP. Прямо сейчас я пытаюсь использовать SoapUI для создания тестовых случаев. В этом конкретном случае я пытаюсь создать учетную запись клиента. У меня есть настройка скелета, но у меня возникают проблемы с настройкой правильного XPath для извлечения идентификатора учетной записи из ответа SOAP.

Ответ, который я получаю от шлюза 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 

Однако при этом все, что я получаю, это сообщение об ошибке

"Отсутствует совпадение для исходного XPath [//OutputParameters/X_CUST_ACCOUNT_ID]"

Я потратил часы, пробуя различные выражения XPath, и все, что я получаю, это либо отсутствие соответствия, либо синтаксические ошибки.


person Evan M.    schedule 05.09.2018    source источник


Ответы (1)


Вы упустили тот факт, что 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']
person zx485    schedule 05.09.2018