首页 > 解决方案 > 当兄弟元素文本节点等于给定值时选择 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/codedeposit可以得到不同的值:

      <dm:status>
         <dm:code>STCLOSEOUT</dm:code>
         <dm:name>STCLOSEOUT</dm:name>
      </dm:status>

如何使用 XPATH 获取dm:ReferenceId特定状态码,例如STCLOSEOUT. 我想在 SOAPUI 测试中使用,传输属性。

我将不胜感激,谢谢!

标签: xmlxpathsoapsoapui

解决方案


使用以下 xpath 查询:

//dm:status/dm:code[text()='STCLOSEOUT']/../../dm:ReferenceId

描述:

  • 对于任何dm:status元素
  • 选择dm:code文本节点相等的子节点STCLOSEOUT(或您想要的任何代码)
  • 上两次dep:agreementData返回dm:ReferenceId

演示:http: //xpather.com/alhDD360


推荐阅读