我使用的是以下货币转换器开放源码WSDL:
http://www.webservicex.com/currencyconvertor.asmx我在下面添加了Xpath断言来验证浮动的ConversationRateResult响应值
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”
请你在这里建议一下。
发布于 2015-08-17 06:57:14
我尝试这项服务,并得到以下结果:
<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或更多重复。
希望能帮上忙
https://stackoverflow.com/questions/32035437
复制相似问题