0

私は実際にはXMLをあまり使用していませんので、助けていただければ幸いです。

WeatherBugからRSSフィードを読み込もうとしています

ここでいくつかのサンプルコードを見つけました:

http://geekswithblogs.net/thibbard/archive/2006/01/13/65764.aspx

System.Data.DataSetを使用してXMLフィードを読み取る場所。

(彼らはVBasicを使用しています私はVC#を使用しています)

これが私が読み込もうとしているXMLのサンプルです:

http://api.wxbug.ne​​t/getLiveCompactWeatherRSS.aspx?ACode=A5333948364&zipcode=80918&unittype=0&OutputType=1

コード例では、次のように風速を取得します。

_wind = DS.Tables( "wind-speed")。Rows(0).Item( "wind-speed_Text")

各インデックス値に何を指定するかをどのように知ることができますか?彼らが風速を指定する方法をどのように決定したかは理解していると思いますが、wind-speed_Textを指定する方法をどのように決定したのでしょうか。

次を使用して、デバッガーで値を確認できます。

m_ds.Tables["wind-speed"]。Rows[0].ItemArray

私は3つの値を見ることができます。「MPH」、「3」、0。

MPHが単位になります。「3」が速度になります。0が何であるかわからない。

そして、aws:WebURLの値にどのようにアクセスしますか?

そして、私は8つのテーブルしか見ていませんが、それよりも多くの値があります。デバッガーをざっと見てみると、WeatherテーブルでそれらのURLと、風向と突風方向の値が見つかりました。

テーブル全体を釘付けにしたと思ったのですが、韻も理由もないようです。

誰かが私を正しい道に導くことができますか?基本的には、XMLに表示されている内容に基づいて、DataTablesでデータを検索する方法を理解する必要があります。

ありがとう

4

1 に答える 1

1

早くて簡単:

XDocument doc = XDocument.Load("http://api.wxbug.net/getLiveCompactWeatherRSS.aspx?ACode=A5333948364&zipcode=80918&unittype=0&OutputType=1");
            XNamespace ns = "http://www.aws.com/aws";
            var webUrl = doc.Element(ns + "weather").Element(ns + "WebURL").Value;
            var wind = doc.Element(ns + "weather").Element(ns + "wind-speed").Value; 

LINQを使用することもできます。

XDocument doc = XDocument.Load("http://api.wxbug.net/getLiveCompactWeatherRSS.aspx?ACode=A5333948364&zipcode=80918&unittype=0&OutputType=1");
            XNamespace ns = "http://www.aws.com/aws";
            var v = from d in doc.Elements(ns + "weather") select new { WebUrl = d.Element(ns + "WebURL").Value, WindSpeed = d.Element(ns + "wind-speed").Value};
            foreach (var c in v)
            {
                Console.WriteLine(c.WebUrl + "--" + c.WindSpeed);
            }
于 2012-04-22T04:46:22.600 に答える