【发布时间】:2017-03-23 02:57:24
【问题描述】:
我有一个想要过滤的 SAP IDOC,但我卡在一个地方。
这是一个示例 XML
<E1EDK14 SEGMENT="1">
<QUALF>007</QUALF>
<ORGID>10</ORGID>
</E1EDK14>
<E1EDK14 SEGMENT="1">
<QUALF>008</QUALF>
<ORGID>BP01</ORGID>
</E1EDK14>
<E1EDK14 SEGMENT="1">
<QUALF>012</QUALF>
<ORGID>ZMOR</ORGID>
</E1EDK14>
条件是这样的
如果 QUALF = 12 且 ORGID = ZOR 则处理 else 忽略
我的代码是这样的
<int-xml:xpath-router id="splitORGID" input-channel="ORDERS" evaluate-as-string="true" resolution-required="false" default-output-channel="ORDER-TYPE-NOT-SUPPORTED">
<int-xml:xpath-expression id="splitORGIDExpression" expression="//E1EDK14/ORGID" />
<int-xml:mapping value="ZOR" channel="ALLOW_ORDERS" />
</int-xml:xpath-router>
我想知道这是否正确。
【问题讨论】:
-
我对 Spring 集成一无所知,但 XPath 表达式选择
E1EDK14元素,其中子QUALF= 12 和ORGID= ZMOR 将是://E1EDK14[QUALF=12 and ORGID='ZMOR'] -
嗨,谢谢您的回答。我基本上是 XPATH 的新手,所以从表达式 //EIEDK14[QUALF=12] 并不意味着采用 QUALF 属性而不是子节点。所以这将类似于
/ -
没有。在 XPath 中使用
@引用属性,例如//E1EDK14[@SEGMENT=1] -
您好抱歉延迟回复所以它现在终于可以工作了。
标签: spring xpath spring-integration