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

如何使用空手道dsl读取CDATA元素

林烨华
2023-03-14

我的XML请求如下所示:

    null
  <ns:complete>

     <ns:identifier>23265</ns:identifier>

     <ns:taskData><![CDATA[<sch:SubscriptionApprovalResponse xmlns:sch="http://workflow.subscription.apimgt.carbon.wso2.org">

    <sch:status>APPROVED</sch:status>

    <sch:workflowExternalRef>#(ref)</sch:workflowExternalRef>

    <sch:description></sch:description>

    </sch:SubscriptionApprovalResponse>]]></ns:taskData>

  </ns:complete>

我正在CDATA体中从外部传递#(ref),但它不读取它。

我在做什么不对劲吗?

共有1个答案

贾骏喆
2023-03-14

是,因为您正尝试在CDATA节中使用嵌入式表达式。我不能不说一个完整的工作例子。

您应该分两步完成,或者使用字符串replace:https://github.com/intuit/karate#replace

* def baz = 'blah'
* def foo = <bar>#(baz)</bar>
* def xml = <foo><Response><![CDATA[#(foo)]]></Response></foo>
* match xml == <foo><Response><![CDATA[<bar>blah</bar>]]></Response></foo>

* def xml = <foo><Response><![CDATA[<bar>@@baz@@</bar>]]></Response></foo>
* replace xml.@@baz@@ = 'blah'
* match xml == <foo><Response><![CDATA[<bar>blah</bar>]]></Response></foo>
 类似资料:
  • 我正在通过设置configure SSL='tlsv1.2'来验证我的SSL算法,这给了我200个响应代码。 但是,如果algirithm不是TLSV1.2,它只是抛出一个没有响应代码的原始错误,如下所示: 14:53:26.025 javax.net.ssl.SSLHandShakeException:握手期间远程主机关闭连接,URL:https://xxxx.com.au/event/coun

  • 我想在/文件中定义特定于环境的属性。因此,我创建了以下: 接下来,我编写了这个: 如https://github.com/intuit/Karate#reading-files所示,函数应该由Karate知道,但是我不确定这是只适用于文件还是也适用于。 不幸的是,上面的都不起作用,因为我得到了这个错误: 我确信该文件存在并且是可读的。 是我做错了什么,还是我的方法不被支持?如果它不受支持,推荐的方

  • 我是新技术的,请原谅我的错误。任何人的任何帮助都是值得的。我需要生成格式为12345AB6-A1DF-4F40-B0FE-26DF6908F62C的随机guid。谢谢

  • 我想通过JobDSL生成基于管道插件的作业,该作业包含在Jenkins签出的git存储库中。 然而,我认为在作业DSL脚本中使用引用字符串的管道脚本不是很好。因此,我想将它们读入一个字符串,并将其传递给函数: 我必须把放在哪里才能工作?我试着把它放在我的DSL脚本旁边,也放在我的DSL源代码的文件夹中。但是Jenkins总是抛出一个“未找到文件”。

  • 问题内容: 我有一台扫描仪,并将定界符设置为“”,但是它仍然不会使用next()方法读取空格。我知道nextline()可以工作,但是我需要单独检查输入中的每个字符,包括空格;这是一个复杂的数据分析问题。不过我很困惑。谷歌什么也没发现。 谁能帮我这个?我正在考虑将空格反转为一个特殊字符,然后出于分析该字符的目的,将其反转回一个包含在字符串中的空格……这似乎有些过头了!有没有更优雅的方式做到这一点?

  • 我跟随空手道文档并将Junit HTML报告复制粘贴到浏览器中。然而,输出是纯文本的,看起来与视频中描述的完全不一样。我尝试了两个不同的浏览器,Firefox57.0.2和Chrome62.0,都给出了相同的输出。输出附于此。 注意:我按照文档中的说明使用@RunWith(karate.class)将.feature文件作为Junit测试运行。下面是Runner类的示例代码。 导入org.juni