каратэ xpath - мы можем заменить / удалить узел - PullRequest
0 голосов
/ 31 мая 2018

Я хочу проверить сообщения об ошибках, изменив допустимый файл сообщений XML.Я могу легко добавить узлы, подобные этой в сценарии:

* def invalidDocumentId = read('Valid.xml') * set invalidDocumentId /soapenv:Envelope/soapenv:Body = <tis:extraBonus>Extra</tis:extraBonus> Given request invalidDocumentId

Но я бы также хотел удалить узлы, обновить имена узлов, изменить имена атрибутов.Есть ли способ установить это или мне нужно вызвать Java com.intuit.karate.XmlUtils.

1 Ответ

0 голосов
/ 31 мая 2018

Во-первых, удаление и добавление узла и даже атрибутов должно быть простым, просто используйте ключевые слова remove и set с XPath.При необходимости они будут перезаписывать значения.

* def base = <query><name>foo</name></query>
* remove base /query/name
* match base == <query/>
* set base /query/foo = 'bar'
* set base /query/@baz = 'ban'
* match base == <query baz="ban"><foo>bar</foo></query>

И хорошая новость заключается в том, что если у вас есть некоторые действительно хитрые требования к манипулированию XML, то на помощь придет синтаксис строки replace,Это лучше всего объяснить в этом другом ответе о переполнении стека: https://stackoverflow.com/a/50367134/143475

...