在C#中使用DomDocument解析Twitter#

问题描述:

任何人都可以告诉我为什么这不会找到任何节点?在C#中使用DomDocument解析Twitter#

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; 

谢谢!

它希望将XPath指向要选择的节点。尝试:

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

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

如果你想不管在哪里匹配文档层次他们都 feed节点

+0

试过这些XPath以及其他很多。谢谢你的提示。 – BrianO 2012-02-28 21:24:32

+0

覆盖默认命名空间的作品。 System.Xml不喜欢mgr.AddNamespace(“”,“http://www.w3.org/2005/Atom”)。所以我把自己的名字放在空字符串的位置,当然也是按照上面Bhargav的建议,尝试了XPath的变体。谢谢大家! @BhargavBhat – BrianO 2012-03-01 22:08:56