Я пытаюсь проанализировать фид Atom программно. У меня есть атом XML, загруженный в виде строки. Я могу загрузить XML в XmlDocument
. Тем не менее, я не могу пройти документ с помощью XPath. Всякий раз, когда я пытаюсь, я получаю null
.
Я использовал этот канал 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
Хотя на этот вопрос есть ответ, я обнаружил, что этот вопрос имеет почти точную копию: Узлы SelectNode не работают с фидом stackoverflow