Я пытаюсь анализировать канал Atom программно. У меня есть XML-XML, загруженный в виде строки. Я могу загрузить XML в XmlDocument
. Однако я не могу пройти документ, используя XPath. Всякий раз, когда я пытаюсь, я получаю null
.Нет узлов, выбранных из XML-документа Atom, используя XPath?
Я использую этот канал Atom в качестве теста: http://steve-yegge.blogspot.com/feeds/posts/default
Вызов SelectSingleNode()
всегда возвращает null
, когда я использую «/
», за исключением. Вот что я хочу прямо сейчас:
using (WebClient wc = new WebClient())
{
string xml = wc.DownloadString("http://steve-yegge.blogspot.com/feeds/posts/default");
XmlNamespaceManager nsMngr = new XmlNamespaceManager(new NameTable());
nsMngr.AddNamespace(string.Empty, "http://www.w3.org/2005/Atom");
nsMngr.AddNamespace("app", "http://purl.org/atom/app#");
XmlDocument atom = new XmlDocument();
atom.LoadXml(xml);
XmlNode node = atom.SelectSingleNode("//entry/link/app:edited", nsMngr);
}
Я думал, что это могло бы быть из-за моей XPath, поэтому я также попытался простой запрос корневого узла, так как я знал, что корень должен работать:
// I've tried both with & without the nsMngr declared above
XmlNode node = atom.SelectSingleNode("/feed");
Независимо от того, что я делаю, кажется, что он ничего не может выбрать. Очевидно, что я что-то упускаю, я просто не могу понять, что. Что мне нужно сделать, чтобы заставить XPath работать на этом Atom-фиде?
EDIT
Хотя этот вопрос есть ответ, я узнал, что этот вопрос имеет почти точный дубликат: SelectNodes not working on stackoverflow feed
возможно дубликат [SelectNodes не работает на StackOverflow сырье] (http://stackoverflow.com/questions/24734/selectnodes-not-working-on-stackoverflow-feed) –