【发布时间】:2015-09-02 17:10:09
【问题描述】:
我有一个类似的 xml 文件
<A>
<B>abc</B>
<C>1</C>
</A>
<A>
<B>def</B>
<C>2</C>
</A>
我必须根据“C”的值来获取“B”的值,这将是 OSB 中代理服务的输入。 请帮助我将如何创建这种类型的代理服务?
【问题讨论】:
标签: middleware osb
我有一个类似的 xml 文件
<A>
<B>abc</B>
<C>1</C>
</A>
<A>
<B>def</B>
<C>2</C>
</A>
我必须根据“C”的值来获取“B”的值,这将是 OSB 中代理服务的输入。 请帮助我将如何创建这种类型的代理服务?
【问题讨论】:
标签: middleware osb
一个 XQuery 和 2 个简单的赋值:
Create a XQuery resource which will return your XML structure
1) Inside Proxy, first action is Assign XQuery call to the file above as a local variable, ie: $xmlFile
2) Then another Assign where you do $xmlFile/A[./C=$body/C]/B/text()
【讨论】:
您可以创建代理服务,而无需提供任何将接受简单 XML 作为输入的 WSDL 引用。 OSB 将此 XML 输入包装在 soap:Body 下。
因此 XPath 可用于从该负载中获取值,例如 $body/A[1]/B/text()。
如果您只需要检索一次,请使用分配操作,否则请使用 Xquery。
希望它会有所帮助。
【讨论】: