Выберите узлы xml, когда текстовый узел элемента-родителя равен заданному значению - PullRequest
1 голос
/ 01 октября 2019

Ниже приводится 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 тесте, Свойства переноса.

Буду благодарен за помощь, спасибо!

1 Ответ

0 голосов
/ 01 октября 2019

Используйте следующий запрос xpath:

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

Описание:

  • для любого элемента dm:status
  • выберите дочернего элемента dm:code с текстовым узломравный STCLOSEOUT (или любой другой код)
  • поднимитесь дважды до dep:agreementData и верните dm:ReferenceId

Демо: http://xpather.com/alhDD360

...