2016-07-05 2 views
0

J'intègre wso2dss 3.5 et wso2esb 4.9. Dans DSS, j'ai créé un DataService pour obtenir des données à partir d'une base de données. Après le tableau de bord WSO2 dans DSS, j'ai utilisé le point de terminaison dans mon projet eclipse (Developer Studio). Le xml gerated par DSS est:Comment accéder à une ligne dans foreach dans wso2ESB (Developer Studio)

<elements xmlns="http://ws.wso2.org/dataservice"> 
    <row> 
     <name>nome1</name> 
     <address>rua xalala das xalalas</address> 
    </row> 
    <row> 
     <name>nome2</name> 
     <address>ruas rms did sa</address> 
    </row> 
    <row> 
     <name>nome3</name> 
     <address>aldoas daso dasodsa</address> 
    </row> 
</elements> 

Ainsi, dans mon projet de configuration ESB, il y a ce code généré:

<foreach expression="//ds:elements/ds:row" xmlns:ds="http://ws.wso2.org/dataservice"> 
    <sequence> 
     <payloadFactory media-type="xml"> 
     <format> 
      <p:Insert xmlns:p="http://ws.wso2.org/dataservice"> 
      <xs:nome xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:nome> 
      <xs:endereco xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:endereco> 
      </p:Insert> 
     </format> 
     <args> 
      <arg evaluator="xml" expression="/ds:row/name"/> 
      <arg evaluator="xml" expression="/ds:row/address"/> 
     </args> 
     </payloadFactory> 
     <log> 
     <property expression="/ds:row/name" name="nome"/> 
     <property expression="/ds:row/address" name="endereco"/> 
     </log> 
    </sequence> 
    </foreach> 

J'essaie d'obtenir la valeur de la première et deuxième élément à chaque rangée (nom et adresse). Comment puis-je faire ceci?

Répondre

0

essayer d'ajouter les xmlns: ds tag à args, comme ceci:

<foreach expression="//ds:elements/ds:row" xmlns:ds="http://ws.wso2.org/dataservice"> 
    <sequence> 
     <payloadFactory media-type="xml"> 
     <format> 
      <p:Insert xmlns:p="http://ws.wso2.org/dataservice"> 
      <xs:nome xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:nome> 
      <xs:endereco xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:endereco> 
      </p:Insert> 
     </format> 
     <args xmlns:ds="http://ws.wso2.org/dataservice">> 
      <arg evaluator="xml" expression="//ds:name"/> 
      <arg evaluator="xml" expression="//ds:address"/> 
     </args> 
     </payloadFactory> 
     <log> 
     <property expression="/ds:row/name" name="nome"/> 
     <property expression="/ds:row/address" name="endereco"/> 
     </log> 
    </sequence> 
    </foreach> 
+0

Il a travaillé, merci –

+0

euahehaeuheaheuaheuah Só pra ver comentei quanto tempo vc demoraria pra entrar pas pile –