2015-05-08 2 views
0
<splitter evaluator="xpath" expression="/healthcare/plans" doc:name="Splitter" /> 
<enricher source="#[flowVars.tempid]" target="#[xpath('/plans/planid').text ]" doc:name="Message Enricher"> 

above code working fine using xpath 

но ниже код, используя xpath3 не подбирая текстмул не xpath3 подбирая значение

<splitter expression="#[xpath3('/healthcare/plans', payload, 'NODESET')]" doc:name="Splitter" /> 
    <enricher source="#[flowVars.tempid]" target="#[xpath3('/plans/planid').text ]" doc:name="Message Enricher"> 

ответ

0

Theres несколько вещей неправильно с вашей конфигурации:

  1. По умолчанию xpath3 возвращается a String, поэтому не нужно звонить .text. Подробнее об этом здесь: http://blogs.mulesoft.org/mule-3-6-xml-xpath-xslt-xquery3/

  2. Исходный и целевой выражения неправильного пути. Если вы хотите сохранить результат выражения XPath в переменной, то target - это где должна быть переменная, а source является источником значения в этом случае выражения xpath.

  3. Ваше выражение Xpath неверно. Нет необходимости в /plans, поскольку XML уже разделен на отдельные узлы плана.

Попробуйте это:

<splitter expression="#[xpath3('/healthcare/plans/*', payload, 'NODESET')]" 
     doc:name="Splitter" /> 
<enricher source="#[xpath3('planid')]" target="#[flowVars.tempid]" 
     doc:name="Message Enricher"> 
+0

после обогатителя целого набора X .Ны в расщепленной форме – muledevlepoer24

+0

я не понимаю? –

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