与 XPath 包含或正则表达式匹配的 Wiremock XML 请求

Wiremock XML request matching with XPath contains or RegEx

提问人:Divya 提问时间:8/5/2023 更新时间:8/7/2023 访问量:134

问:

需要使用 XPath或正则表达式)文本包含和多个 OR 值实现匹配条件。

我的请求正文:

<person_obj>
    <params>
        <name>David J</name>
        <loca>NY</loca>
    </params>
</person_obj>

匹配条件:标签包含带有或或或,其他元素/标签可以忽略。nameDavidJackMike

即,我已经尝试过了

"bodyPatterns": [
    {
      "ignoreArrayOrder" : true,
      "ignoreExtraElements" : true,
      "matchesXPath":{
        "expression": "//person_obj/params/name/text()",
        "or": [
          {"contains": "David"}, {"contains": "Mike"}, {"contains": "Jack"}
        ]
      }
    }
]
xml xpath xml 解析 xunit wiremock

评论


答:

0赞 Siebe Jongebloed 8/7/2023 #1

不需要单独的 or-property。只需在 text() 上使用 XPath 谓词即可。

expression": "//person_obj/params/name/text()[contains(.,'David' or .,'Mike' or .,'Jack')]"
1赞 Mani Kasi 8/7/2023 #2

这似乎有效。

"bodyPatterns": [
    {
      "matchesXPath":{
        "expression": "/person_obj/params/name/text()",
        "or": [
          {"contains": "David"}, {"contains": "Mike"}, {"contains": "Jack"}
        ]
      }
    }
]