【问题标题】:splitting an xml message and aggregating based on some condition in mule esb根据 mule esb 中的某些条件拆分 xml 消息并进行聚合
【发布时间】:2015-08-28 17:42:19
【问题描述】:

我的 inputXML:

 <Orders>
 <Order><OrderId>1</OrderId><Total>10</Total></Order>
 <Order><OrderId>2</OrderId><Total>20</Total></Order>
 <Order><OrderId>3</OrderId><Total>30</Total></Order>
 <Order><OrderId>4</OrderId><Total>40</Total></Order>
 <Order><OrderId>5</OrderId><Total>50</Total></Order>
<Order><OrderId>5</OrderId><Total>60</Total></Order>
<Order><OrderId>5</OrderId><Total>70</Total></Order>
<Order><OrderId>5</OrderId><Total>80</Total></Order>
<Order><OrderId>5</OrderId><Total>90</Total></Order>
 </Orders>

我需要从一个文件中读取这个输入 XML。并且需要根据以下条件将其写入不同的文件

  /Orders/Order/Total==10  then write this record to file1.
/Orders/Order/Total>10 and /Orders/Order/Total<=40 then write the records to file2.
/Orders/Order/Total>40 then write the records to file3.

我的文件 1 o/p(预期):

 <OrderId>1</OrderId><Total>10</Total>

我的文件 2 o/p(预期):

 <OrderId>2</OrderId><Total>20</Total>
 <OrderId>3</OrderId><Total>30</Total>
 <OrderId>4</OrderId><Total>40</Total>

我的文件 3 o/p(预期):

 <OrderId>5</OrderId><Total>50</Total>
 <OrderId>6</OrderId><Total>60</Total>
 <OrderId>7</OrderId><Total>70</Total>
 .
 .
 .

我对 Mule ESB 有点陌生。我对 mule 的转换和转换感到困惑。

有人可以建议在我的 mule 流程中使用的最佳拆分和聚合策略和组件。还有要在组件中使用的配置..

请注意,这是一个输入 XML 示例。我实时需要处理大型 XML 文件。所以建议最好的解决方案。提前致谢!

【问题讨论】:

    标签: xml mule mule-studio


    【解决方案1】:

    使用for each 组件并迭代到每个订单元素。提示:使用 xpath。例如,把这个放在集合字段#[xpath3('//*:Orders//*:Order', payload, 'NODESET')]

    在您的for each 中,添加一个具有这些条件的选择组件。显然,这里也使用 xpath。比如当组件#[Integer.parseInt(xpath3('.//Total',payload)) &gt; 40]

    在每个选项的选项上,放置一个DOM to XML 组件以将订单元素设置为有效负载,然后添加Object to String 组件。链上的最后一个将是文件写入/附加逻辑,它可以是 java 转换器或表达式组件。 (更好的选择是使用 StringBuilder,您只需附加每个订单,然后将 3 个文件保存在 for each 组件之后)。

    希望你了解 Java,所以最后一部分是有意义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      相关资源
      最近更新 更多