首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用XPATH断言无法获得正确的预期响应包含正则表达式

使用XPATH断言无法获得正确的预期响应包含正则表达式
EN

Stack Overflow用户
提问于 2015-08-16 13:12:16
回答 1查看 270关注 0票数 0

我使用的是以下货币转换器开放源码WSDL:

代码语言:javascript
运行
复制
http://www.webservicex.com/currencyconvertor.asmx

我在下面添加了Xpath断言来验证浮动的ConversationRateResult响应值

代码语言:javascript
运行
复制
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.webserviceX.NET/';
matches(//ns1:ConversationRateResult/text(),'[0-9][0-9].[0-9][0-9]*')

但是,当我通过在XPath匹配配置窗口中单击来验证它时,我得到的期望值为"False“而不是"True”

请你在这里建议一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-17 06:57:14

我尝试这项服务,并得到以下结果:

代码语言:javascript
运行
复制
<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <ConversionRateResponse 
            xmlns="http://www.webserviceX.NET/">
            <ConversionRateResult>0.0079</ConversionRateResult>
        </ConversionRateResponse>
    </soap:Body>
</soap:Envelope>

因此,请注意您的XPath --它是不正确的,节点名是ConversionRateResult而不是ConversationRateResult

还要注意你的正则表达式不像你期望的那样起作用.在regex .运算符中,要匹配任何字符,特别是要匹配.,您必须使用\.来转义字符,所以我认为,对您的情况,正确的正则表达式是:

[0-9]+\.?[0-9]*

解释:

一个或多个重复的[0-9]+数字。

\.?用于.字符,但可选(0或1).这是应该的,也许利率可能是1。

[0-9]*数字0或更多重复。

希望能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32035437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档