user2609202
user2609202

Reputation: 11

Dynamic xpath for the property creation in wso2 esb

My Requirement is that i have to create some property based on xpath based on chaining.

Flow is something like :

1)i am calling service1 and based on that response i am creating the property mediator (svc1_property). 2)The call is made to service2 and the response fetched from the service2 has a list of values .

3) I need to fetch a node from the response of svc2 based on the xpath using property : svc1_property.

Config is :

expression="fn:concat("//ImageList[Level='Employee'][ImageCaption='",$ctx:EmpName,"']/IMG_Large")" scope="default" type="STRING"

EmpName is the property created on svc1

Upvotes: 1

Views: 2068

Answers (2)

tyfyh
tyfyh

Reputation: 333

Use evaluate

Example:

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

You can find more infomation in this blog.

Upvotes: 7

user2609202
user2609202

Reputation: 11

The Above article shows the case where property is being used for source . But my requirement is different. The response coming from one API will give the empname and based on that i will fetch the pics of the emp from the list expression="fn:concat("//ImageList[Level='Employee'][ImageCaption='",$ctx:EmpName,"']/IMG_Large")" scope="default" type="STRING" on execution of the above expression the reponse i am getting is //ImageList[Level='Employee'][ImageCaption='Timmy']/IMG_Large ...... if Timmy is the empname. it is just picking the variable name(Timmy in this case) and is not parsing the xpath getting created

Upvotes: 0

Related Questions