Получение определенного узла XML - PullRequest
1 голос
/ 24 марта 2011

Как я могу получить "входные" узлы из этого канала

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");

Заранее спасибо,

Ответы [ 2 ]

5 голосов
/ 24 марта 2011

Вы не указываете пространство имен. Попробуйте это:

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 голос
/ 24 марта 2011

Эти данные представлены в формате Atom, поэтому вам необходимо проанализировать их в соответствии со стандартной спецификацией.Самый простой способ - взглянуть на открытый исходный код.Проверьте Эта ссылка , вам нужна «Создание универсального парсера для каналов Atom, RDF и RSS» часть

...