RAKESH M
RAKESH M

Reputation: 153

Replacing XML node key using dataprovider karate

I am reading my xml structure from a file and replacing the values from the examples

 <input>
 <data>
 <props>
 <p n="AMOUNT">1000</p>
 <p n="NAME">name</p>
 <p n="{ACCOUNTTYPE}">purpose</p>
 </props>
 </data>
 </input>

I am driving data from examples and setting/replacing the input xml as below

* set inputXml/input/data/props/p[@n='AMOUNT'] = <AMOUNT> -- Works fine
* set inputXml/input/data/props/p[@n='NAME'] = <NAME> -- Works fine

Examples:

|AMOUNT|NAME|ACCOUNTTYPE|PURPOSE|



|100|abc|BUSINESS|smallbusiness|



|2000|def|PERSONAL|home|

I want to update the "n" tag name ACCOUNTTYPE and corresponsding PURPOSE similar to above(both key and value). Is there a way to achieve this in Karate? Please suggest.

Is is possible to use '#(accountType)' and '#(purpose)' inside the xml file similar to json and run?

Upvotes: 1

Views: 260

Answers (1)

Peter Thomas
Peter Thomas

Reputation: 58088

Is is possible to use '#(accountType)' and '#(purpose)' inside the xml file

Yes. Please read the docs: https://github.com/intuit/karate#embedded-expressions

And the examples: xml.feature

Given def user = <user><name>john</name></user>
And def lang = 'en'
When def session = <session><locale>#(lang)</locale><sessionUser>#(user)</sessionUser></session>

Upvotes: 1

Related Questions