2016-03-29 12 views
1

Ich möchte Char nach verschütteten Nachrichtentext erhalten!WSO2 ESB Wie können wir den Wert von Property teilen und nach Split-Zeichen protokollieren?

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

ich führen will! arrayChar = a arrayChar = b arrayChar = c

Antwort

1

Iterierte Vermittler benötigen eine Liste von XML-Knoten so, eine neue XML-Nachricht mit der Liste der Werte aus Ihrer Immobilie extrahierten erstellen 'Messagetext' (der Zweck Skript Mediator) und dann, iterieren die Knoten aus dieser Nachricht mit iterieren 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> 
+0

Während dies kann helfen, die OP das Problem zu lösen, sind Code-only Antworten in der Regel nicht von großem Nutzen für die Gemeinschaft im großen und ganzen. Würde es Ihnen etwas ausmachen, eine Erklärung hinzuzufügen, die beschreibt, wie dieser Code die Frage beantwortet? – Aaron

+0

danke für Sie beraten, zum Beispiel, ich erhalte einen Code, der Code wird durch ein Komma getrennt, ich möchte Split-Codes durch Komma dann goup es, und fordern Sie die entsprechende Schnittstelle separat, so dass wir diese Split-Methode benötigen. Mein Englisch ist nicht sehr gut, bitte vergib mir! – Pourquoi