【问题标题】:Change certain values in XML based on if else condition in mule根据 mule 中的 if else 条件更改 XML 中的某些值
【发布时间】:2014-07-19 19:52:58
【问题描述】:

我从 FTP 获取 xml 文件,然后将数据映射到 web 服务调用。我需要根据 if else 条件更改 XML 文件中的某些字段。这是示例输入文件(仅 xml 的一部分):

 <MATMAS>
     <MSGFN></MSGFN>
     <ZPLD2></ZPLD2>
 </MATMAS>

如果MSGFN003,那么我需要将0 映射到Web 服务输入中的isActive 字段,如果不是,则1ZPLD2 的条件是:

case
  when @zpld2='' then null
  when @zpld2='00000000' then null
  else @zpld2
end.

在将 xml 映射到 web 服务输入时,我可以在数据映射器中实现这一点吗?如果可以,请指导我。我对 Mulesoft 很陌生。如果您需要任何进一步的信息,请告诉我。

【问题讨论】:

  • 如果您更清楚地将文本与代码分开,您的问题将更具可读性。

标签: xml if-statement mule transform


【解决方案1】:

是的,您可以通过 Datamapper 使用 xpath 表达式和查找表来执行此操作。有关更多信息,请参见此处:http://www.mulesoft.org/documentation/display/33X/DataMapper+Transformer+Reference 并查找 xpath 和查找表部分。

【讨论】:

  • 嗨瑞恩...感谢您的回复...我能够使用 ""IsActive = (input.MSGFN == '003') 获得第一个条件? '0' : '1' ;"" 在数据映射器脚本中......对于 ZPLD2,我无法获得第二个(@zpld2='' 时为空,@zpld2='00000000' 时为空,然后为空否则@zpld2结束。)你能帮我解决这个问题吗...谢谢
  • 我尝试使用 PlannedPriceDate = ((input.ZPLD2 == '' || '00000000') ? null : (input.ZPLD2));但它抛出 java.lang.StringIndexOutOfBoundsException: String index out of range: -1
猜你喜欢
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 2022-01-22
  • 2020-07-30
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多