2009-12-22 10 views
1

J'ai besoin de lire le woeid du doc ​​xml ci-dessous. J'ai besoin de lire et stocker les données dans une variable de chaîne afin que je puisse interroger le service météorologique de Yahoo.extrait des données du flux rss dans C#

XML retourné par requête:

<query yahoo:count="1" 
     yahoo:created="2009-12-22T08:30:31Z" 
     yahoo:lang="en-US" 
     yahoo:updated="2009-12-22T08:30:31Z" 
     yahoo:uri="http://query.yahooapis.com/v1/yql?q=select+woeid+from+geo.places+where+text%3D%22farnborough%2C+greater+london%2Cuk%22"> 
− 
<diagnostics> 
<publiclyCallable>true</publiclyCallable> 
− 
<url execution-time="32"> 
http://where.yahooapis.com/v1/places.q(farnborough%2C%20greater%20london%2Cuk);start=0;count=10 
</url> 
<user-time>33</user-time> 
<service-time>32</service-time> 
<build-version>4265</build-version> 
</diagnostics> 
− 
<results> 
− 
<place> 
<woeid>19941</woeid> 
</place> 
</results> 
</query> 

que quelqu'un peut me montrer comment faire cela par LINQ?

---------- EDIT ----------------------------------- -------------------------------------------------- -----

Je viens de réaliser que je LINQ est pas pris en charge par .net 2.0 ... doh

Alors s'il vous plaît pourrait suggérer une certaine alternative en utilisant des références disponibles avec .net 2.0? -Peut-être republier et tag? Merci beaucoup,

Répondre

3

Vous pouvez le faire comme ceci:

XDocument doc = XDocument.Parse(xml); 
string s = doc.Descendants() 
       .Where(element => element.Name == "woeid") 
       .FirstOrDefault().Value; 
+0

Une question regrding cette ligne: XDocument doc = XDocument.Parse (xml); Je ne peux pas passer le document XML car il prend une chaîne. Puis-je lui passer le xmldoc.ToString()? – van

+0

Peut-être .... quel est le type de votre variable 'xmldoc'? –

0

Here is a way pour extraire les valeurs d'un fichier XML en utilisant Linq et xPath.

Espérons que cela aide certains.

1

Vous pouvez utiliser quelque chose de similaire à cette requête Linq pour obtenir les résultats de retour du document XML

XDocument feeds = XDocument.Parse(xml); 
var result = feeds.Descendants("diagnostics") 
        .Select(f => new 
        { 
         UserTime = f.Element("uset-time").Value, 
         ServiceTime = f.Element("service-time").Value, 
         //... etc 
        }.First();