WSO2 ESB 我们如何在拆分字符后拆分属性的值和日志? [英] WSO2 ESB How we can split Property's value and log after split chars?

查看:14
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆