2014-11-01 3 views
2

아래의 흐름을 사용하고 있습니다.xml-node에서 foreach는 mule esb에서 null을 반환합니다.

<flow name="mytestFlow1" doc:name="mytestFlow1"> 
     <http:inbound-endpoint mimeType="text/xml" path="xmltest" exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/> 
     <foreach collection="#[xpath://file//data//deliveryOrder]" doc:name="For Each" > 
      <echo-component /> 
      <logger level="INFO" message="#[payload]" /> 
      <logger level="INFO" message="#[rootMessage]" /> 
     </foreach> 
    </flow> 

및 게시 xml.

<file> 
    <data> 
    <deliveryOrder> 
     <deliveryMethod>TRUCK1</deliveryMethod> 
    </deliveryOrder> 
    <deliveryOrder> 
     <deliveryMethod>TRUCK21</deliveryMethod> 
    </deliveryOrder> 
    <deliveryOrder> 
     <deliveryMethod>TRUCK2</deliveryMethod> 
    </deliveryOrder> 
    </data> 
</file> 

내 플로우 에코 구성 요소를 실행하고있을 때 인쇄는 정확하지만 로거 인쇄 null입니다. 나 또한 사용자 지정 변압기를 사용하여 null로 인쇄합니다.

의견을 보내 주시면 감사하겠습니다.

답변

0

문제의 모든 값을 얻을 것이다 ... 다음보십시오.

<json:xml-to-json-transformer doc:name="XML to JSON" /> 
    <foreach doc:name="For Each" collection="#[json:file/data/deliveryOrder]"> 
     <flow-ref name="insertdatabase" doc:name="Flow Reference" /> 

    </foreach> 
2

정렬 밖으로 첫번째 JSON으로 변환 사용이 <deliveryMethod>

<flow name="mytestFlow1" doc:name="mytestFlow1"> 
    <http:inbound-endpoint 
    mimeType="text/xml" 
    path="xmltest" 
    exchange-pattern="request-response" 
    host="localhost" 
    port="8081" 
    doc:name="HTTP"/> 
    <splitter 
    evaluator="xpath" 
    expression="//file/data/deliveryOrder" 
    doc:name="Splitter_For_MultipleSameNodes"/> 
    <logger level="INFO" 
    message="#[xpath('//deliveryMethod').text]" 
    doc:name="Logger"/>  
</flow> 
관련 문제