aoakeson :
나는 내가 통합 흐름을 통과하려고 몇 가지 XML이있다. 여기에 내가 뭘하는 단계는 다음과 같습니다
- 그렇다면, 내가 그것을 처리 할 해달라고 - "filterMe"과 유형 = "filterType"을 가지고는 XML 노드를 포함하는 경우 메시지 필터링합니다.
- 코 틀린 클래스에 XML에서 변환하고, 메시지에 어떤 헤더를 추가합니다.
내가 제대로이 개 XML의 특성에 메시지를 필터링 할 수있는 방법을 찾을 수 없습니다. 어떤 도움을 아주 많이 감사합니다.
다음은 몇 가지 예를 들어 XML이다
<?xml version="1.0" encoding="UTF-8"?>
<Response type="filterType">//Filter on this
<event>
<header>
<type>Test</type>
</header>
<body>
<filterMe>filter me out</filterMe> //Filter this too
</body>
</event>
</Response>
통합 흐름
return IntegrationFlows
.from(inputChannel)
.filter("filterMe"::contains)
.transform { payload: String ->
val jsonMessage = XML.toJSONObject(payload).toString()
아르테타 :
상체를 고려 XPath를 .
봄 통합으로 filter()
다음과 같이 할 수 있습니다
.filter(payload ->
XPathUtils.evaluate(payload, "/Response/@type = \"filterType\" and //filterMe",
XPathUtils.BOOLEAN))
참고 :이 있어야 spring-integration-xml
그에 액세스하려면 클래스 경로에 XPathUtils
.