xpath - 从 SoapUI 中的 Oracle SOA 响应中提取帐户 ID
问题描述
我们有一个可以将 SOAP 请求传递到的 Oracle SOA 网关设置。现在,我正在尝试使用 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 表达式,但得到的只是缺少匹配或语法错误。
解决方案
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']
推荐阅读
- python - 将 json 转储到文件时,键 (0, 0) 不是字符串-python
- django - Django 如何摆脱迁移错误
- ruby-on-rails - 如何在 Ruby on Rails 中使用 axlsx 将更多列中的数据添加到已经在 Excel 中编写的行
- table-valued-parameters - 表值函数未在 Ajax 查询中返回结果
- c# - 数据可以用列表中的表单结构发布吗?
- pyspark - 如果我在 spark 数据框中有大约 3000 个变量,如何创建 3 个数据框,每个数据框有 1000 个变量
- c# - 在 C# 中使用密码从 Access File 保存和读取 AppSetting
- java - 如何在 intellij 中为播放框架应用程序运行单元测试
- jquery - 在 index.aspx 页面插入记录后重定向到 ajax 成功函数 Asp.net Ajax
- c# - 如何在 c# 控制台项目中授予写权限