如何使用空手道从XML响应中的字符串中提取值

时间:2018-09-04 05:48:41

标签: dsl karate

不幸的是,我从后端得到的响应不是正确的xml格式,而是以这样的错误格式给出响应:

@IBAction func selectTranslationLanguage(_ sender: UISegmentedControl) 
{
    [translationA, translationB, translationC, firstLangText,
     secondLangText, thirdLangText].forEach { $0.isHidden = true }

    switch translationSegmentedControl.selectedSegmentIndex 
    {
        case 0: translationA.isHidden = false
        case 1: translationB.isHidden = false
        case 2: translationC.isHidden = false
        default: break
    }
}

现在由于空手道而无法读取响应并获取“ workflowExternalRef”的值,这是本测试的目标。

空手道有什么读法吗?

1 个答案:

答案 0 :(得分:0)

这真的弄乱了XML,因此请与您团队中的某个人联系,看看是否可以解决此问题。

无论如何,由于您可以在Karate中使用Java,因此这是一种实现方法。这不是生产质量代码,请适当修改:

* string response = response
* def start = response.indexOf('workflowExternalRef>')
* def ref = response.substring(start + 23)
* def end = ref.indexOf('<')
* def ref = ref.substring(0, end)
* match ref == '23d30bd8-51e3-4afe-aae0-3fa159d85a6b'