xml - 当兄弟元素文本节点等于给定值时选择 xml 节点
问题描述
以下是 SOAP 答案:
<dep:deposit>
<dep:agreementData>
<dm:ReferenceId>634_24570</dm:ReferenceId>
<dm:status>
<dm:code>STCLOSEOUT</dm:code>
<dm:name>STCLOSEOUT</dm:name>
</dm:status>
<dm:code>133</dm:code>
<dm:amount>5000</dm:amount>
<dm:currency>EUR</dm:currency>
<dm:documentDate>2015-12-11</dm:documentDate>
<b:refer>3013011512126177799</b:refer>
<b:product>
<dm:code>3.7.1.EU</dm:code>
<dm:name>Deposit EUR new</dm:name>
</b:product>
<b:department>
<dm:code>301</dm:code>
</b:department>
<b:dateFrom>2015-12-11</b:dateFrom>
<b:dateTo>2016-12-11</b:dateTo>
<b:deaClient>
<dm:code>0300.000306</dm:code>
</b:deaClient>
<b:balanceDep>
<dm:code>301</dm:code>
</b:balanceDep>
<b:serviceDep>
<dm:code>301</dm:code>
</b:serviceDep>
<b:salesDep>
<dm:code>301</dm:code>
</b:salesDep>
<b:arrestFl>0</b:arrestFl>
<dep:depoTermTU>12.0</dep:depoTermTU>
<dep:depoTermTimeType>M</dep:depoTermTimeType>
<dep:lockFl>0</dep:lockFl>
</dep:agreementData>
</dep:deposit>
其中元素status/code
的deposit
可以得到不同的值:
<dm:status>
<dm:code>STCLOSEOUT</dm:code>
<dm:name>STCLOSEOUT</dm:name>
</dm:status>
如何使用 XPATH 获取
dm:ReferenceId
特定状态码,例如STCLOSEOUT
. 我想在 SOAPUI 测试中使用,传输属性。
我将不胜感激,谢谢!
解决方案
使用以下 xpath 查询:
//dm:status/dm:code[text()='STCLOSEOUT']/../../dm:ReferenceId
描述:
- 对于任何
dm:status
元素 - 选择
dm:code
文本节点相等的子节点STCLOSEOUT
(或您想要的任何代码) - 上两次
dep:agreementData
返回dm:ReferenceId
演示:http: //xpather.com/alhDD360
推荐阅读
- sql - 更新表数据,从另一个表中获取
- java - 无法使用 vscode 运行 Java 程序
- dynamics-crm - Microsoft.OData.Client $expand 不填充模型
- python - 如何以特定的间隔将项目插入列表以匹配另一个列表的 len?
- html - 相同的 css 在草图和浏览器中出现不同
- c - 如何在C中的整数数组中添加二次序列
- javascript - 来自 http 错误代码的错误描述 - react.js/javascript
- ruby-on-rails - 如何使用 Spree API 进行登录和注册功能?
- java - 如何从我的课程中获取课程以使用我的程序?
- r - 当数量更多时,ggplotly无法正常工作