2014-03-06 3 views
0

뮬 플로우에서 xml 페이로드에 대해 xPath 평가기를 실행해야하는 요구 사항이 있습니다. 이 xPath 평가 기는 단일 값 또는 다중 값을 반환 할 수 있습니다. 이 값들을 플로우 변수에 저장하고 나중에 플로우의 어딘가에서 사용할 필요가 있습니다. 누군가이 변경 사항을 적용하도록 도와 줄 수 있습니까?노새 흐름의 XPATH가 여러 값을 반환합니다.

감사합니다.

감사합니다.

답변

1

XML 문서에서 값을 추출하려면 XPath 추출기를 사용하십시오.

<mulexml:xpath-extractor-transformer expression="/a:my/b:xpath/text()"/> 

또한 useMule Expression Language 동적 XPath 식을 만들 수 있습니다

<expression-transformer mimeType="text/xml" evaluator="xpath" expression="//school/day[@date= #[function:datestamp:yyyy-MM-dd] ]/name 
"/> 

그러나이 복잡한 표현 다소 지저분한 얻을 수 있습니다, 그래서 dynamic XPath transformer 내 자신을 만들었습니다

<dx:dxpath expression="/b:team[name = $teamName]/b:player[b:name = $playerName]/b:goals/text()"> 
    <dx:variable key="playerName" value="#[header:invocation:playerName]"/> 
    <dx:variable key="teamName" value="#[header:invocation:teamName]"/> 
    <!-- unlimited number of variables --> 
</dx:dxpath> 

눈에 다소 편합니다.

는 그런 다음 ericher와 흐름을 바꿈 :

<enricher target="#[variable:myData]"> 
    <processor-chain> 
     <!-- your flow here --> 
    </processor-chain> 
</enricher> 
+0

감사 토마스을이에 응답하는. 내가 XP에서 뮬 흐름을 사용하여 XML에서 값을 추출 할 수 있다는 것을 알고 있습니다. 그러나 내 XPATH 표현식은 값의 배열을 반환합니다. XPath 표현식의 끝에서 ".text"함수를 사용하여 값을 가져올 수 없습니다. 아래의 표현식을 사용하고 있습니다 : user2324686