2014-10-30 4 views
0

У меня есть этот ответ SOAP:Получить значение из ответа SOAP с помощью XPath

<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.1492</ConversionRateResult> 
    </ConversionRateResponse> 
</soap:Body> 

, и я хочу, чтобы получить значение:

0.1492

Как заявить это с помощью XPath?

Мой SoapUI ответ, как 'сырые' является:

HTTP/1.1 200 OK 
Cache-Control: private, max-age=0 
Content-Type: text/xml; charset=utf-8 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Fri, 31 Oct 2014 19:43:54 GMT 
Content-Length: 316 

<?xml version="1.0" encoding="utf-8"?><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.1482</ConversionRateResult></ConversionRateResponse></soap:Body></soap:Envelope> 

ответ

0

В чистом XPath, тривиальным:

//ConversionRateResult/text() 

Но поскольку XPath обычно встраивается в язык более высокого уровня, как Java или XSLT, вам может понадобиться (пример XSLT):

<xsl:template match="ConversionRateResult"> 
    <xsl:value-of select="."/> 
</xsl:template> 
+0

Я обновил свой вопрос. Я не уверен, что понимаю «пример XSLT» –

+0

Пробовал ли вы '// ConversionRateResult/text()'? Что случилось? –