WSO2 ESB 我们如何在拆分字符后拆分属性的值和日志? [英] WSO2 ESB How we can split Property's value and log after split chars?
本文介绍了WSO2 ESB 我们如何在拆分字符后拆分属性的值和日志?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在消息文本溢出后获取字符!
I want get char after spilt messagetext !
<api xmlns="http://ws.apache.org/ns/synapse" name="iterate" context="/tokenize">
<resource methods="GET" uri-template="/{temp}">
<inSequence>
<property name="MessageText" value="a,b,c," scope="default"></property>
<log>
<property name="MessageText" expression="get-property('MessageText')"></property>
</log>
[how ergodic this MessageText?]
<iterate continueParent="true" expression="MessageText" sequential="true">
<target>
<sequence>
<log level="full" separator=",">
<property name="arrayChar" value="?"></property>
</log>
</sequence>
</target>
</iterate>
</inSequence>
</resource>
</api>
我要结果!数组字符 = 一个数组字符 = b数组字符 = c
I want result! arrayChar = a arrayChar = b arrayChar = c
推荐答案
迭代调解器需要一个 xml 节点列表,因此,使用从属性MessageText"中提取的值列表创建一个新的 XML 消息(脚本调解器的目的) 然后,使用 iterate mediator 迭代这条消息中的节点
iterate mediator need a list of xml nodes so, create a new XML message with the list of values extracted from your property 'MessageText' (the purpose of script mediator) and then, iterate the nodes from this message with iterate mediator
<inSequence>
<property name="MessageText" value="a,b,c" scope="default"/>
<script language="js"><![CDATA[
var payloadXML = new XML(<root/>);
for each (var item in String(mc.getProperty("MessageText")).split(',')) {
payloadXML.appendChild(new XML(<item>{item}</item>));
}
mc.setPayloadXML(payloadXML);
]]></script>
<iterate xmlns:fn="http://www.w3.org/2005/xpath-functions" continueParent="true" expression="//item" sequential="true">
<target>
<sequence>
<log level="full" separator=",">
<property name="arrayChar" expression="$body/item"></property>
</log>
</sequence>
</target>
</iterate>
</inSequence>
这篇关于WSO2 ESB 我们如何在拆分字符后拆分属性的值和日志?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文