我们有一个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表达式,而我得到的只是缺少匹配或语法错误。
答案 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