Как получить элементы из soap Payload в WSO2 EI 6.1.1 - PullRequest
1 голос
/ 04 августа 2020

У меня ниже soap полезная нагрузка, которая поступает из конечной точки WSO2 DSS.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <Response xmlns="http://ws.wso2.org/dataservice">
         <RestrictionCount>
            <count>1</count>
         </RestrictionCount>
      </Response>
   </soapenv:Body>
</soapenv:Envelope>

Я хочу извлечь count значений из указанной выше полезной нагрузки. Я пробовал как "// RestrictionCount / count / text ()", используя Онлайн-инструмент выражения xpath , который дает мне результат, но в кодировании я пробовал то же самое, используя выражение посредника свойства, как показано ниже, которое не работает для меня

<property expression="//RestrictionCount/count/text()" name="count" scope="default" type="STRING"/>

Кто-нибудь, пожалуйста, помогите мне в этом?

1 Ответ

3 голосов
/ 04 августа 2020

Поскольку вы имеете дело с пространствами имен, используйте local-name() для выбора элемента:

<property expression="//*[local-name()='RestrictionCount']/*[local-name()='count']/text()" name="count" scope="default" type="STRING"/>

Или лучше правильно объявите пространство имен непосредственно перед выражением XPath:

<property xmlns:ns="http://ws.wso2.org/dataservice" expression="//ns:RestrictionCount/ns:count/text()" name="count" scope="default" type="STRING"/>
...