在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
节点
。
试过这些XPath以及其他很多。谢谢你的提示。 – BrianO 2012-02-28 21:24:32
覆盖默认命名空间的作品。 System.Xml不喜欢mgr.AddNamespace(“”,“http://www.w3.org/2005/Atom”)。所以我把自己的名字放在空字符串的位置,当然也是按照上面Bhargav的建议,尝试了XPath的变体。谢谢大家! @BhargavBhat – BrianO 2012-03-01 22:08:56