2011-03-24 145 views
1

我怎樣才能獲得「入門」節點此輸入獲取特定的XML節點

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

我嘗試的LINQ to 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

這裏沒有XPath表達式。重新標記。 – 2011-03-27 15:09:07

+0

我已經添加了它,如果有人會提出一個xpath解決方案的地方的LINQ到XML。謝謝。 – anilca 2011-03-28 13:10:14

回答

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

Atom格式呈現這些數據,所以你需要根據標準規範解析它。最簡單的方法是看看開源代碼。查看This link,您需要「爲Atom,RDF和RSS源創建通用分析器」部分