1

> http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl Webサービスを使用して、GmlTimeSerieswebmethodを呼び出して天気予報を取得しています。ここで、xmlから気温、天気アイコンのリンクの詳細を読みたいだけです。xmlには膨大なデータがあります。誰かがxmlから必要なデータをフェッチするアイデアを与えることができますか?

NDFDホームページ

XMLは次のようになります。完全なXMLファイルはここにあります

以下のxmlデータからTemparatureをフェッチしたい:

 <gml:featureMember>
          <app:Forecast_Gml2Point>
             <gml:position>
                <gml:Point srsName="EPSG:4326">
                   <gml:coordinates>-87.8859170,41.7450495</gml:coordinates>
                </gml:Point>
             </gml:position>
             <app:validTime>2011-06-07T12:00:00</app:validTime>
             <app:temperature>77.0</app:temperature>
          </app:Forecast_Gml2Point>
       </gml:featureMember>

       <gml:featureMember>
          <app:Forecast_Gml2Point>
             <gml:position>
                <gml:Point srsName="EPSG:4326">
                   <gml:coordinates>-87.8859170,41.7450495</gml:coordinates>
                </gml:Point>
             </gml:position>
             <app:validTime>2011-06-07T15:00:00</app:validTime>
             <app:temperature>90.0</app:temperature>
          </app:Forecast_Gml2Point>
       </gml:featureMember>

そして下からの天気フレーズ:

 <gml:featureMember>
      <app:Forecast_Gml2Point>
         <gml:position>
            <gml:Point srsName="EPSG:4326">
               <gml:coordinates>-87.8859170,41.7450495</gml:coordinates>
            </gml:Point>
         </gml:position>
         <app:validTime>2011-06-08T03:00:00</app:validTime>
         <app:weatherPhrase>Mostly Clear</app:weatherPhrase>
      </app:Forecast_Gml2Point>
   </gml:featureMember>

   <gml:featureMember>
      <app:Forecast_Gml2Point>
         <gml:position>
            <gml:Point srsName="EPSG:4326">
               <gml:coordinates>-87.8859170,41.7450495</gml:coordinates>
            </gml:Point>
         </gml:position>
         <app:validTime>2011-06-08T06:00:00</app:validTime>
         <app:weatherPhrase>Mostly Clear</app:weatherPhrase>
      </app:Forecast_Gml2Point>
   </gml:featureMember>

上記はxmlファイルの一部です。このように、私は7日間の天気の詳細に関する大量のデータを持っています。上記のxmlから気温と気象条件を読み取る必要があります。

完全なXMLファイルはここにあります

4

2 に答える 2

3

私はあなたがここであなたの答えを見つけると思います

編集:名前空間を使用する必要があります。例:

XNamespace app = "http://www.weather.gov/forecasts/xml/OGC_services";
var result = from i in doc.Descendants(app+"Forecast_Gml2Point")
                  select new 
                  {
                      temperature = i.Element(app + "temperature"), 
                      icon = i.Element(app+"weatherIcon")
                  };

編集2:他の名前空間でElementを取得する必要がある場合は、別の例を次に示します。

XNamespace gml ="http://www.opengis.net/gml"
i.Element(gml+"coordinates" )
于 2011-06-07T11:55:15.893 に答える
1

VisualStudioの「Web参照の追加」機能を使用すると簡単になります。このようにして、Visual StudioはWSDLに基づいてすべての(プロキシ)クラスを生成し、通常の方法と同じようにクラスに対してプログラミングできます。つまり、XMLの解析は必要ありません。

このリンクで指摘されているように:

Visual Studio.Net Web参照は、サーバーで実行されているWebサービスに接続するためにクライアントで作成されるプロキシクラスです。IDE Web参照の内部では、コードが自動的に生成され、隠しファイルがプロジェクトに挿入されます。.Netはタイプセーフであり、Webサービスを使用するコードをコンパイルするには、クライアントは呼び出される各メソッドのメソッドシグネチャを知っている必要があるため、これが必要です。

WSDLの使用について詳しくは、上記のリンクを参照してください。

于 2011-06-07T13:18:20.590 に答える