Я пытаюсь вызвать веб-сервис, который возвращает xml, а затем вывести результат в таблицу. Обратите внимание, что приведенный ниже пример - это просто вызов более простого веб-сервиса, который я вызываю, но если я смогу заставить его работать, ...

0
Anson 15 Дек 2020 в 07:57

1 ответ

Лучший ответ

На основе ваших двух объявлений пространств имен:

XMLTABLE(XMLNAMESPACES('http://www.w3.org/2003/05/soap-envelope' as "soap",  'http://blah.com' as "bb")

И XML

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <LoginResponse xmlns="http://blah.com">
      <LoginResult>something.cdd3a6cc-8104-37bd-7514-035b50f5b5c6</LoginResult>
    </LoginResponse>
  </soap:Body>
</soap:Envelope>

Попробуйте следующее выражение XPath:

/soap:Envelope/soap:Body/bb:LoginResponse/bb:LoginResult

Или используя пространство имен с подстановочными знаками

/soap:Envelope/soap:Body/*:LoginResponse/*:LoginResult
1
Yitzhak Khabinsky 15 Дек 2020 в 05:23