我希望通过修改有效的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。
答案 0 :(得分:1)
首先,删除和添加节点甚至属性应该很简单,只需在XPath中使用remove
和set
关键字即可。如果需要,他们会覆盖值。
* 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
语法就可以解决了。最好在Stack Overflow的另一个答案中解释:https://stackoverflow.com/a/50367134/143475