2016-03-29 4 views
1

私はmessagetextをこぼした後にcharを取得したい!WSO2 ESBスプリット文字の後にPropertyの値とログを分割する方法は?

<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 = A arrayChar = B arrayChar = C

答えて

1

反復メディエーターXMLノードのリストは、そう、あなたの財産から抽出された値のリストを持つ新しいXMLメッセージを作成する必要がある「MessageText」(スクリプトメディエーターの目的)

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

これは、OPが問題を解決するのに役立つかもしれませんが、コードのみの回答は、一般的にコミュニティにとって大いに役立たないことが多いです。このコードがどのように質問に答えるかを説明する説明を追加してもよろしいですか? – Aaron

+0

アドバイスありがとう、例えば、私はコードを受け取る、コードはコンマで区切られている、私はコンマで分割コードをしたい、それをgoupし、別途対応するインタフェースを要求するので、この分割メソッドが必要です。私の英語はあまり良くありません、私を許してください! – Pourquoi

関連する問題