如何从此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");
提前致谢,
答案 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提要创建通用解析器”部分