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

时间:2018-09-05 17:36:51

标签: xpath soapui oracle-soa

我们有一个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 

但是,这样做,我只能得到一个错误提示

  

“源XPath [// OutputParameters / X_CUST_ACCOUNT_ID]缺少匹配项”

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

1 个答案:

答案 0 :(得分:2)

您错过了in也具有默认名称空间定义的事实,

var data = [{
        Name: "First Last",
        ID: "12536723",
        Status: "Member"
    }, {
        Name: "First Last",
        ID: "12371238",
        Status: "Member"
    },
    {
        Name: "First Last",
        ID: "12341228",
        Status: "Member"
    }
]

for (var x in data) {

    console.log(data[x].Name); //x is not a value It is a index like 0,1 ...14

}

for (var x of data) {

    console.log(x.Name); // use of which prints x as object not index

}

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

OutputParameters