C# extraction de données à partir de XML

Je suis en train de lire des données météorologiques à partir de XML dans une URL. Le XML ressemble à ceci:

<weatherdata>
<location>...</location>
<credit>...</credit>
<links>...</links>
<meta>...</meta>
<sun rise="2013-05-11T04:49:22" set="2013-05-11T21:39:03"/>
<forecast>
<text>...</text>
<tabular>
<time from="2013-05-11T01:00:00" to="2013-05-11T06:00:00" period="0">
<!--
 Valid from 2013-05-11T01:00:00 to 2013-05-11T06:00:00 
-->
<symbol number="2" name="Fair" var="mf/02n.03"/>
<precipitation value="0" minvalue="0" maxvalue="0.1"/>
<!--  Valid at 2013-05-11T01:00:00  -->
<windDirection deg="173.8" code="S" name="South"/>
<windSpeed mps="4.2" name="Gentle breeze"/>
<temperature unit="celsius" value="9"/>
<pressure unit="hPa" value="1004.2"/>
</time>
</tabular>
</forecast>
<observations>...</observations>
</weatherdata>

Je suis intéressé par les données de prévision dans le XML. Je veux avoir le temps de et le temps, les données météorologiques. Par exemple, la température est écrit comme ceci dans le fichier XML:

<temperature unit="celsius" value="9"/>

Je veux extraire les données avec quelque chose comme ceci:

 string fromTime = time from(the attribute in the xml);
                     string fromTime =time to(the attribute in the xml);
                    string name = temperature(the attribute in the xml);
                    string unit =unit(the attribute in the xml);
                    int value = value(the attribute in the xml);

J'ai créé un exemple de code qui est capable de tout lire mais je ne sais pas comment faire pour extraire uniquement les données dont j'ai besoin. Le code que j'ai ressemble maintenant à ceci:

        String URLString = "http://www.yr.no/place/Norway/Oslo/Oslo/Oslo/forecast.xml";
        XmlTextReader reader = new XmlTextReader(URLString);

        while (reader.Read())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element: //The node is an element.
                    Console.Write("" + reader.Name);

                    while (reader.MoveToNextAttribute()) //Read the attributes.
                        Console.Write(" " + reader.Name + "='" + reader.Value + "'");
                    Console.Write("\n");
                    Console.WriteLine("------------------------------");
                    break;
                case XmlNodeType.Text: //Display the text in each element.
                    Console.WriteLine(reader.Value);
                    break;
                case XmlNodeType.EndElement: //Display the end of the element.
                    Console.Write("</" + reader.Name);
                    Console.WriteLine(">");
                    break;

            }
        }

Des idées comment je peux extraire les données météorologiques et le temps?

Êtes-vous limité à l'utilisation .Net 2.0 ou antérieure? Si pas, je vous recommande l'utilisation de Linq to XML.

OriginalL'auteur user1810659 | 2013-05-10