2016-08-24 4 views
1

次のxmlレスポンスから返された値を抽出するためにxpath式を書くのは苦労します。WeatherWSアプリから返されたxmlレスポンスに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> 
     <GetCityForecastByZIPResponse xmlns="http://ws.cdyne.com/WeatherWS/"> 
     <GetCityForecastByZIPResult> 
      <Success>true</Success> 
      <ResponseText>City Found</ResponseText> 
      <State>MD</State> 
      <City>Columbia</City> 
      <WeatherStationCity>Baltimore</WeatherStationCity> 
      <ForecastResult> 
       <Forecast> 
        <Date>2011-10-08T00:00:00</Date> 
        <WeatherID>4</WeatherID> 
        <Desciption>Sunny</Desciption> 
        <Temperatures> 
        <MorningLow>48</MorningLow> 
        <DaytimeHigh>78</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>00</Nighttime> 
        <Daytime>00</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
       <Forecast> 
        <Date>2011-10-09T00:00:00</Date> 
        <WeatherID>4</WeatherID> 
        <Desciption>Sunny</Desciption> 
        <Temperatures> 
        <MorningLow>50</MorningLow> 
        <DaytimeHigh>83</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>00</Nighttime> 
        <Daytime>00</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
       <Forecast> 
        <Date>2011-10-10T00:00:00</Date> 
        <WeatherID>4</WeatherID> 
        <Desciption>Sunny</Desciption> 
        <Temperatures> 
        <MorningLow>53</MorningLow> 
        <DaytimeHigh>82</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>00</Nighttime> 
        <Daytime>00</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
       <Forecast> 
        <Date>2011-10-11T00:00:00</Date> 
        <WeatherID>2</WeatherID> 
        <Desciption>Partly Cloudy</Desciption> 
        <Temperatures> 
        <MorningLow>57</MorningLow> 
        <DaytimeHigh>78</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>10</Nighttime> 
        <Daytime>10</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
       <Forecast> 
        <Date>2011-10-12T00:00:00</Date> 
        <WeatherID>6</WeatherID> 
        <Desciption>Showers</Desciption> 
        <Temperatures> 
        <MorningLow>60</MorningLow> 
        <DaytimeHigh>71</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>50</Nighttime> 
        <Daytime>60</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
       <Forecast> 
        <Date>2011-10-13T00:00:00</Date> 
        <WeatherID>6</WeatherID> 
        <Desciption>Showers</Desciption> 
        <Temperatures> 
        <MorningLow>61</MorningLow> 
        <DaytimeHigh>69</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>60</Nighttime> 
        <Daytime>50</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
       <Forecast> 
        <Date>2011-10-14T00:00:00</Date> 
        <WeatherID>2</WeatherID> 
        <Desciption>Partly Cloudy</Desciption> 
        <Temperatures> 
        <MorningLow>59</MorningLow> 
        <DaytimeHigh>70</DaytimeHigh> 
        </Temperatures> 
        <ProbabilityOfPrecipiation> 
        <Nighttime>30</Nighttime> 
        <Daytime>40</Daytime> 
        </ProbabilityOfPrecipiation> 
       </Forecast> 
      </ForecastResult> 
     </GetCityForecastByZIPResult> 
     </GetCityForecastByZIPResponse> 
    </soap:Body> 
</soap:Envelope> 

この応答からSuccessプロパティ値 'true'を抽出するxpath式を記述できます。

私は試行をテストするのに、次のオンラインツール - http://www.freeformatter.com/xpath-tester.htmlを使用していますが、それぞれの試行は返されました!NO MATCH。ここで

は私も正しかったXPath式です:

//GetCityForecastByZIPResponse//GetCityForecastByZIPResult//Success 

誰かが助けることができると思います。

p.sこの応答を生成するために使用されるWebサービスは、ここにあります。 http://wsf.cdyne.com/WeatherWS/Weather.asmx - 私はGetCityForecastByZIPサービスを使用しています。 乾杯!

答えて

0

あなたのいずれかが単独で

//*[local-name()='GetCityForecastByZIPResponse']/*[local-name()='GetCityForecastByZIPResult']/*[local-name()='Success'] 
以下のような要素名に基づいてXPathを使用し、あなたの使用済みのXPathエンジンで、または単に先行して「登録」しなければならないので、これが原因の名前空間にあります
関連する問題