获取特定的Xml节点

时间:2011-03-24 07:55:09

标签: c# linq-to-xml feedparser

如何从此Feed中获取“入口”节点

  

http://www.google.com/alerts/feeds/14392773026536511983/5526937985735563348

我尝试了linq到xml,但我认为因为代码后的条目标签的现有属性不起作用。

string url = "http://www.google.com/alerts/feeds/14392773026536511983/5526937985735563348";

WebClient c = new WebClient();

string xml = ASCIIEncoding.Default.GetString(c.DownloadData(url));

XDocument doc = XDocument.Parse(xml);

var entries = doc.Descendants("entry");

提前致谢,

2 个答案:

答案 0 :(得分:5)

您没有指定命名空间。试试这个:

XNamespace atom = "http://www.w3.org/2005/Atom";
var entries = doc.Descendants(atom + "entry");

顺便说一句,我不会使用ASCII,或DownloadData ...使用WebClient.DownloadString来处理编码。或者实际上,只需使用XDocument.Load(url)

例如:

string url = ...;

XDocument doc = XDocument.Load(url);
XNamespace atom = "http://www.w3.org/2005/Atom";
var entries = doc.Descendants(atom + "entry");
Console.WriteLine(entries.Count()); // Prints 20

答案 1 :(得分:1)

此数据以Atom格式显示,因此您需要根据标准规范对其进行解析。最简单的方法是查看开源代码。查看This link,您需要“为Atom,RDF和RSS提要创建通用解析器”部分