mule xpath3没有拿起价值

时间:2015-05-08 08:49:54

标签: mule

<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的代码下方没有拿起文本

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

1 个答案:

答案 0 :(得分:0)

您的配置存在一些问题:

  1. 默认情况下xpath3会返回一个字符串,因此无需调用.text。更多相关信息:http://blogs.mulesoft.org/mule-3-6-xml-xpath-xslt-xquery3/

  2. 源和目标表达式错误的方式。如果要将XPath表达式的结果存储在一个变量中,那么target就是变量所在的位置,source是值的来源,在这种情况下是xpath表达式。

    < / LI>
  3. 您的Xpath表达式错误。不需要/plans,因为XML已经拆分为单独的计划节点。

  4. 试试这个:

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