当前位置: 首页 > 知识库问答 >
问题:

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

公良育
2023-03-14

不幸的是,ei从我的后端获得的响应不是正确的xml格式,并且它以一种糟糕的格式给出了如下所示的响应:

<soapenv:Body>

    <ns2:getInputResponse xmlns:ns2="http://docs.oasisopen.org/ns/bpel4people/ws-humantask/api/200803">

        <ns2:taskData xmlns:s186="http://www.w3.org/2001/XMLSchema-instance" xmlns:s187="http://www.w3.org/2001/XMLSchema" s186:type="s187:string">&lt;?xml version="1.0" encoding="UTF-8"?>

&lt;SubscriptionApprovalData xmlns="http://workflow.subscription.apimgt.carbon.wso2.org" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

     &lt;apiName>Auto_Approval&lt;/apiName>

     &lt;apiVersion>v1&lt;/apiVersion>

     &lt;apiContext>/test/lambda/v1&lt;/apiContext>

     &lt;apiProvider>admin&lt;/apiProvider>

     &lt;subscriber>regtest&lt;/subscriber>

     &lt;applicationName>newApp&lt;/applicationName>

     &lt;tierName>Gold&lt;/tierName>

     &lt;workflowExternalRef&gt;23d30bd8-51e3-4afe-aae0-3fa159d85a6b&lt;/workflowExternalRef>

     &lt;callBackURL>https://apistore-dev-dev-a878-14-ams10-nonp.qcpaws.qantas.com.au/services/WorkflowCallbackService&lt;/callBackURL>
  &lt;/SubscriptionApprovalData></ns2:taskData>

    </ns2:getInputResponse>

</soapenv:Body>

因此,现在空手道无法读取响应并获取“WorkflowExternalRef”的值,这是我本次测试的目标。

空手道能读懂吗?

共有1个答案

鲁华灿
2023-03-14

这确实是一个混乱的XML,所以请与您的团队中的人员联系,以确定是否可以解决这一问题。

不管怎样,既然您可以在空手道中使用Java,这里有一种方法可以做到这一点。这不是生产质量代码,请适当调整:

* string response = response
* def start = response.indexOf('workflowExternalRef&gt;')
* def ref = response.substring(start + 23)
* def end = ref.indexOf('&lt;')
* def ref = ref.substring(0, end)
* match ref == '23d30bd8-51e3-4afe-aae0-3fa159d85a6b'
 类似资料:
  • 我得到的答复如下: 如何提取属性xmlns为https://www.w3schools.com/xml/的值? def response=“”“ soap:body37.77777777777778”“

  • 我正在使用ApacheJMeter发出HTTP请求。 响应格式如下: HTTP/1.1 100继续 HTTP/1.1 200 OK x-powering-by: Express access-Control-low-source:*access-Control-low-method: HEAD, POST, PUT, GET, OPTIONS, DELETE access-Control-low-

  • 我想提取一些值并以JSON格式存储在数组中。 我有我的代码在karate-config.js文件中,因为我调用的API只需要调用一次,结果需要存储在数组中,以便以后可以在其他功能中使用。 结果 预期结果

  • 我尝试运行一些测试,如果测试成功,则需要在每个场景结束时调用“”文件,但如果测试失败,则不应调用“”文件。 我测试结果如下所示: 如果响应代码为,则应运行命令“”,如果为,则应跳过此命令。 有人能帮我一下吗?

  • 我正在使用来自动处理肥皂请求,我想使用XML Schema(XSD)验证XML格式的响应。 我需要模式。java调用它的代码和函数。功能文件。我尝试使用RESTAPI和空手道演示来验证json模式,并找到了正确的结果,但soap(xml、xsd)没有得到。我正在尝试这个模式。用于XSD验证的java。

  • 我有以下字符串 从上面,我需要提取下面的文字 第一个数字和文本之间总是有一个空格,所以2129和This is page1之间有一个空格。有时第一个数字被省略,就像2129不见了。文本和下一个数字之间总是有一个空格,所以在This is a Page1和6754001之间有一个空格,有时可能有两个空格。我只需要提取这些线这些线总是从空格开始,所以它可以 它们的后面总是有一个空格,有时是一个空格,有