Atom フィードをプログラムで解析しようとしています。アトム XML を文字列としてダウンロードしました。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");
何をしても何も選択できないようです。明らかに何かが欠けています。何がわからないのですか。この Atom フィードで XPath を機能させるには、何をする必要がありますか?
編集
この質問には回答がありますが、この質問にはほぼ完全に重複することがわかりました: SelectNodes not working on stackoverflow feed