2015-07-25 3 views
0

я следующий код:WSO2 XML свойство XPath для дочернего элемента

<property name="resultOM" scope="default" type="OM"> 
    <test><test1>testing111</test1></test> 
</property> 

<log level="full"> 
    <property name="ROOT" expression="$ctx:resultOM" /> 
    <property name="resultOM.test" expression="$ctx:resultOM//test1" /> 
</log> 

Тогда я ожидал бы увидеть в журналах значения ROOT = testing111 resultOM.test = testing111

и хотя значение ROOT является отлично, значение resultOM.test пусто. Каким должен быть правильный xpath для получения дочернего значения? Версия используемого WSO2ESB - 4.5.1.

ответ

3

По умолчанию пространство имен (http://ws.apache.org/ns/synapse) определяется при создании свойства типа OM. Поэтому вам нужно выполнить выражения xpath с пространствами имен. Попробуй это;

<log level="full"> 
    <property name="ROOT" expression="$ctx:resultOM"/> 
    <property name="resultOM.test" xmlns:ns="http://ws.apache.org/ns/synapse" expression="$ctx:resultOM//ns:test1"/> 
</log> 

Прочтите [1] для получения более подробной информации.

[1] http://isharapremadasa.blogspot.com/2014/08/wso2-esb-property-mediator-performing.html

Смежные вопросы