WSO2 ESB 我们如何拆分属性的值并在拆分字符后记录?



我想在溢出的messagetext后获取char!

<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>

我想要结果!arrayChar=aarrayChar=barrayChar=c

迭代中介需要一个xml节点列表,因此,使用从属性"MessageText"(脚本中介的目的)中提取的值列表创建一个新的xml消息,然后使用迭代中介迭代该消息中的节点

  <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>

最新更新