当我打电话给某些服务时,响应就像下面一样。
<Code>
<SimpleCode Id="206">
<Attribute>(1 - 10)</Attribute>
</SimpleCode>
<SimpleCode Id="110">
<StringA>ElementId=HSS1</StringA>
</SimpleCode>
<SimpleCode Id="109"/>
</Code>
我需要逐个将 Id 值分配给属性介体。就像这样,
property_01 --> 216
property_02 --> 110
property_03 --> 109
以下是如何从回复中获取ID
<property expression="$body/Code/SimpleCode/@Id" name="FrameID" scope="default" type="STRING"/>
我尝试使用每个调解器,因为这个响应是动态的。此Id数量可以更改。
这是我的foreach meditor
<foreach expression="$body/Error">
<sequence>
<sequence key="Gen_ID"/>
</sequence>
</foreach>
这是Gen_ID Sequense
<sequence name="Gen_ID" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<property expression="$body/Code/SimpleCode/@Id" name="FrameID" scope="default" type="STRING"/>
<log description="" level="full">
<property name="=====FRAME_ID==========" value="=====FRAME_ID=========="/>
<property expression="get-property('FrameID')" name="===ID VALUE===="/>
</log>
当我执行此操作时,put就是这样,
206110109
所有ID附加到酒店&gt;我该怎么解决这个问题。谢谢
答案 0 :(得分:0)
在[1]中查看foreach mediator的描述。 “在中介之后,子消息将顺序合并回原始消息中的原始父元素.ForEach不会拆分消息流,这与迭代中介不同。它保证在所有迭代完成之前在同一个线程中执行。”
我猜你必须根据你的要求使用iterate mediator。