You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Wiremock实现XPath或正则表达式多值OR文本包含匹配

XPath多值OR包含匹配配置方案

需求:针对以下XML请求体,实现匹配逻辑——只要<name>标签的文本包含David、Jack或Mike其中任意一个即可,忽略其他元素/标签。

目标XML请求体:

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

你尝试的配置存在语法错误(matchesXPath后缺少冒号),且部分工具对or数组的支持有限,这里提供两种可行方案:

方案一:直接在XPath表达式中整合OR逻辑

把多个包含判断直接写在XPath里,语法简洁且兼容性更好:

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

这个XPath会直接定位到满足"文本包含David/Mike/Jack任意一个"的<name>节点,只要存在该节点即匹配成功。

方案二:修正配置语法,使用多条件OR数组

如果你的工具支持or数组配置,先补全语法错误(matchesXPath后加冒号),配置如下:

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

注:部分工具对or数组的规则有特殊要求,方案一的通用性更强。

内容的提问来源于stack exchange,提问作者Divya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:43:16