如何使用XML DSL根据特定元素的值对Apache Camel中的消息进行重新排序?

a2mppw5e  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(205)

请考虑以下XML消息:

<?xml version="1.0" encoding="UTF-8"?>
<Message>
  <HeaderSegment>
    <SortElement>ABC</SortElement>
  </HeaderSegment>
  <LineSegment>
    ...
  </LineSegment>
</Message>

如何对SortElement元素值执行重新排序?
(每条消息中只有一个HeaderSegment和一个SortElement)

<?xml version="1.0" encoding="UTF-8"?>
<blueprint>
  <camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route>
      <from uri="file:messages/incoming"/>
      <resequence>
        <!-- ??? -->
        <to uri="file:messages/outgoing"/>
      </resequence>
    </route>
  </camelContext>
</blueprint>

(使用Apache Camel 2.23.0)

8fq7wneg

8fq7wneg1#

您可以使用xpath表达式根据“SortElement”值进行排序。
java DSL中的示例:

from("direct:demo")
  .resequence( xpath("/Message/HeaderSegment/SortElement") )

相关问题