xml 属性的空手道嵌入式表达式未按预期工作

Karate Embedded Expression not working as expected for xml attribute

这是:3_PostData_Request.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
    <S:Body>
        <SucceededGetData RequestID="#(request_uuid)">some text</SucceededGetData>
        <MessageDelivered OfferID="#(request_uuid)" />

    </S:Body>
</S:Envelope>

这是场景文件:

Scenario: test
    * def UUID = function(){ return java.util.UUID.randomUUID() }
    * def request_uuid = call UUID
    * def req = read('classpath:3_PostData_Request.xml')
    * print req

这是结果:

<S:Body>
    <SucceededGetData RequestID="ab5bbb38-d462-42f5-afd2-49c47fd59365">some text</SucceededGetData>
    <MessageDelivered OfferID="#(request_uuid)"/>
  </S:Body>
</S:Envelope>

我想知道为什么会这样。为什么 Karate 能够为其中包含一些文本的 xml 元素替换 #(request_uuid),为什么不能为没有任何文本的元素替换#(request_uuid)。我怎样才能在这两种情况下无缝地实现替换。我正在使用空手道 0.7.0.1。谢谢!

我也在他们的 Git 回购中添加了一个问题。等待他们的回复。 https://github.com/intuit/karate/issues/341

是的,这是一个错误!您有一个解决方法:

* set response /Envelope/Body/MessageDelivered/@OfferID = request_uuid