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

Wiremock使用matchesXPath匹配字符串值时匹配失败问题咨询

错误原因

你在字符串匹配时没有显式提取XML节点的文本值,直接将v1:Transaction节点对象与字符串做等值对比。XPath对数值类型的隐式转换兼容性更好,所以匹配数字1的时候可以正常生效,但字符串对比时需要明确指定对比节点的文本内容,否则会因为类型不匹配导致匹配失败。另外XML格式化时产生的缩进、换行等隐形空白字符,也会导致直接对比节点时匹配失败。
补充说明:你贴出的配置片段缺少JSON对象和数组的闭合符号,实际使用时需要补全,否则会先出现JSON解析错误。

修复方案

推荐使用normalize-space()函数处理节点内容,自动消除空白字符的影响,修正后的配置如下:

"bodyPatterns": [{
      "matchesXPath" : "//ipgapi:IPGApiOrderRequest[normalize-space(./v1:Transaction)='abc']",
      "xPathNamespaces": {
        "ipgapi": "http://ipg/ipgapi",
        "v1": "http://ipg/v1"
      }
}]

如果你确定节点内容没有多余空白,也可以直接提取文本值对比:

"bodyPatterns": [{
      "matchesXPath" : "//ipgapi:IPGApiOrderRequest[./v1:Transaction/text()='abc']",
      "xPathNamespaces": {
        "ipgapi": "http://ipg/ipgapi",
        "v1": "http://ipg/v1"
      }
}]

内容的提问来源于stack exchange,提问作者Tan Jin Peng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:36:04