Разбор Twitter с использованием DomDocument в C # - PullRequest
0 голосов
/ 28 февраля 2012

Может кто-нибудь сказать мне, почему это не найдет никаких узлов?

 WebClient Client = new WebClient();      
   Stream stream =  
     Client.OpenRead("http://search.twitter.com/search.atom?q=JetBlueCheeps");

   StreamReader reader = new StreamReader(stream);
   XmlDocument doc = new XmlDocument();
   XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);

   mgr.AddNamespace("google", "http://base.google.com/ns/1.0");
   mgr.AddNamespace("openSearch", "http://a9.com/-/spec/opensearch/1.1/");
   mgr.AddNamespace("", "http://www.w3.org/2005/Atom");
   mgr.AddNamespace("twitter", "http://api.twitter.com/");
   mgr.AddNamespace("georss", "http://www.georss.org/georss");

   doc.LoadXml(reader.ReadToEnd());
   XmlNodeList list = doc.DocumentElement.SelectNodes("entry", mgr);

Я пытаюсь прочитать все «входные» узлы, и они присутствуют в документе, потому что работает этот альтернативный метод:

 XmlNode fentry = doc.DocumentElement.ChildNodes[9];
  while (fentry.NextSibling != null)
            fentry = fentry.NextSibling;

Спасибо!

1 Ответ

2 голосов
/ 28 февраля 2012

Ожидается XPath для узлов, которые вы хотите выбрать. Попробуйте:

XmlNodeList list = doc.DocumentElement.SelectNodes("feed/entry", mgr);

или

XmlNodeList list = doc.DocumentElement.SelectNodes("//entry", mgr);

, если вы хотите сопоставить все feed узлы независимо от того, где они находятся в иерархии документов.

...