используя функцию Xpath в wso2 esb

Я пытаюсь использовать fn:contains как условие xpath в посреднике фильтра wso2 esb.

Мне нужно найти, присутствует ли в данной строке следующий шаблон: //. Поэтому я сохранил строку (адрес) в свойстве и вызвал это свойство из посредника фильтра.

адрес = mq://[email protected]

Я пробовал следующие комбинации, и ничего не получилось

fn:contains('get-property('address')','://')
fn:contains(get-property('address'),'://')
fn:contains("get-property('address')",'://')

Если я дам адресную строку вместо свойства get, это сработает! также сработала комбинация ниже

"fn:contains(get-property('address'),'://')"

но после сохранения вышеупомянутый xpath не отображается в представлении дизайна. XPATH был пуст.

Любые материалы по этому вопросу, пожалуйста?


person Naresh sivaram    schedule 09.05.2017    source источник


Ответы (1)


Кажется, вы «веселитесь с кавычками». Чтобы обойти это, вы можете использовать $ctx вместо get-property(). $ctx — это переменная xpath Synapse, которая позволяет вам получить доступ к свойствам, установленным в области по умолчанию. Вы можете проверить ссылку на другие переменные xpath.

Попробуйте использовать:

"fn:contains($ctx:address,'://')"
person ophychius    schedule 09.05.2017
comment
Рад помочь и добро пожаловать в Stack Overflow. Если этот ответ решил вашу проблему, отметьте его как принятый. - person ophychius; 09.05.2017