从c#中的rss feed中提取数据

时间:2009-12-22 20:42:27

标签: c# xml linq-to-xml

我需要阅读下面的xml doc中的woeid。我需要读取数据并将其存储到字符串变量中,以便查询yahoo气象服务。

查询返回的XML:

<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>

有人可以通过linq告诉我如何做到这一点吗?

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

我刚刚意识到.net 2.0 ... doh

不支持linq

那么请一些人建议使用.net 2.0提供的参考资料吗? -maybe转发和标记? 非常感谢,

3 个答案:

答案 0 :(得分:3)

你可以这样做:

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

答案 1 :(得分:1)

您可以使用与此Linq查询类似的内容从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();

答案 2 :(得分:0)

Here is a way使用Linq和xPath从xml文件中提取值。

希望这会有所帮助。