【发布时间】:2015-02-27 18:56:06
【问题描述】:
我有以下 SOAP 响应:-
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<retrieveAllDataResponse xmlns="http://services.test.com/schema/MainData/V1">
<retrieveAllData>
<Response>The Data retrieved from the Database</Response>
<Id>1231</Id>
<Name>test1</Name>
<Age>560</Age>
<Designation>Software Engineer</Designation>
</retrieveAllData>
<retrieveAllData>
<Response>The Data retrieved from the Database</Response>
<Id>165</Id>
<Name>test2</Name>
<Age>561</Age>
<Designation>Senior Software Engineer</Designation>
</retrieveAllData>
<retrieveAllData>
<Response>The Data retrieved from the Database</Response>
<Id>134</Id>
<Name>test3</Name>
<Age>562</Age>
<Designation>HR</Designation>
</retrieveAllData>
</retrieveAllDataResponse>
</soap:Body>
</soap:Envelope>
现在我想从列表<retrieveAllData> 中提取值并放入 foreach 下的流变量中:-
<foreach collection="#[xpath('//xmlns:retrieveDataResponse/xmlns:retrieveAllData')]" doc:name="For Each">
<set-variable doc:name="Variable" value="#[xpath('//xmlns:Id/text()').text]" variableName="id"/>
<logger level="INFO" message="#[flowVars['id']]" doc:name="Logger"/>
<set-variable doc:name="Variable" value="#[xpath('//xmlns:Name/text()').text]" variableName="name"/>
<logger level="INFO" message="#[flowVars['name']]" doc:name="Logger"/>
<set-variable doc:name="Variable" value="#[xpath('//xmlns:Age/text()').text]" variableName="age"/>
<logger level="INFO" message="#[flowVars['age']]" doc:name="Logger"/>
<set-variable doc:name="Variable" value="#[xpath('//xmlns:Designation/text()').text]" variableName="designation"/>
但我没有将值放入变量中。我得到以下内容:-
Splitter returned no results. If this is not expected, please check your split expression
请注意,我已经为命名空间设置了 XML 命名空间管理器 ..
请告诉我有没有更好的方法从列表中获取所有值并将其设置到流变量中?
【问题讨论】:
标签: xpath mule mule-studio