0
votes

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

2
can you please attached the config file...Isuru Gunawardana

2 Answers

5
votes

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.

0
votes

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