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
Vous devez vous connecter pour publier un commentaire.
Utiliser LINQ to XML
Je n'ai pas renseigné tout. J'espère vous avoir une idée de comment l'utiliser.
comment puis-je faire la même chose pour mon fichier XML: stackoverflow.com/questions/24268245/...
OriginalL'auteur arunlalam
Utiliser le
XElement
deSystem.Xml.Linq
OriginalL'auteur ILMTitan
Cela peut vous aider à accéder à des valeurs de nœud comme vous semblez le désirer. Espérons que cela aide!
Obtenir Nœud spécifié les valeurs de document XML
OriginalL'auteur