在wso2 esb中创建属性的动态xpath

时间:2013-07-23 10:01:48

标签: wso2esb

我的要求是我必须根据链接创建一些基于xpath的属性。

Flow就像:

1)我正在调用service1并根据该响应创建属性调解器(svc1_property)。  2)调用service2,从service2获取的响应有一个值列表。

3)我需要使用属性svc1_property从svc2的响应中获取基于xpath的节点。

配置是:

表达式= “FN:CONCAT(” //的ImageList [等级= '雇员'] [ImageCaption = ' “$ CTX:EmpName,”'] / IMG_Large “)”  范围=“默认”  类型= “STRING”

EmpName是在svc1上创建的属性

2 个答案:

答案 0 :(得分:4)

使用评估

示例:

<property name="xpathexpr" expression="fn:concat('//',get-property('xpathexpression'))" scope="default" type="STRING"/>
<property name="xpatheval" expression="evaluate($ctx:xpathexpr)" scope="default" type="STRING"/>

您可以在此blog.

中找到更多信息

答案 1 :(得分:0)

上面的文章显示了属性用于源的情况。但我的要求是不同的。来自一个API的响应将给出empname,并且基于此我将从列表表达式获取emp的图片=“ fn:concat(”// ImageList [Level ='Employee'] [ImageCaption =' “,$ ctx:EmpName,”'] / IMG_Large“)”scope =“default”type =“STRING”执行上面的表达式我得到的响应是 // ImageList [Level = 'Employee'] [ImageCaption ='Timmy'] / IMG_Large ......如果Timmy是empname。它只是选择变量名称(在本例中为Timmy)并且不解析创建的xpath