如何在 wso2ESB(Developer Studio)中访问 foreach 中的一行
How to access a row into foreach in wso2ESB (Developer Studio)
我正在整合 wso2dss 3.5 和 wso2esb 4.9。在 DSS 中,我创建了一个 DataService 来从数据库中获取数据。在 WSO2 仪表板进入 DSS 之后,我在我的 eclipse 项目 (Developer Studio) 中使用了端点。 DSS生成的xml是:
<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>
因此,在我的 ESB 配置项目中,生成了以下代码:
<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"></xs:nome>
<xs:endereco xmlns:xs="http://ws.wso2.org/dataservice"></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>
我正在尝试获取每一行(名称和地址)的第一个和第二个元素的值。我该怎么做?
尝试将 xmlns:ds 添加到 args 标签,如下所示:
<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"></xs:nome>
<xs:endereco xmlns:xs="http://ws.wso2.org/dataservice"></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>
我正在整合 wso2dss 3.5 和 wso2esb 4.9。在 DSS 中,我创建了一个 DataService 来从数据库中获取数据。在 WSO2 仪表板进入 DSS 之后,我在我的 eclipse 项目 (Developer Studio) 中使用了端点。 DSS生成的xml是:
<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>
因此,在我的 ESB 配置项目中,生成了以下代码:
<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"></xs:nome>
<xs:endereco xmlns:xs="http://ws.wso2.org/dataservice"></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>
我正在尝试获取每一行(名称和地址)的第一个和第二个元素的值。我该怎么做?
尝试将 xmlns:ds 添加到 args 标签,如下所示:
<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"></xs:nome>
<xs:endereco xmlns:xs="http://ws.wso2.org/dataservice"></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>