Sto tentando di analizzare un feed Atom a livello di codice. Ho scaricato l'XML dell'atomo come una stringa. Posso caricare l'XML in un XmlDocument
. Tuttavia, non posso attraversare il documento usando XPath. Ogni volta che provo, ottengo null
.Nessun nodo selezionato dal documento XML Atom che utilizza XPath?
Sto usando questo feed Atom come un test: http://steve-yegge.blogspot.com/feeds/posts/default
Calling SelectSingleNode()
restituisce sempre null
, ad eccezione di quando uso "/
". Qui è quello che sto provando in questo momento:
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);
}
ho pensato che potrebbe essere stato a causa della mia XPath, così ho provato anche una semplice query del nodo principale da quando ho saputo che la radice dovrebbe funzionare:
// I've tried both with & without the nsMngr declared above
XmlNode node = atom.SelectSingleNode("/feed");
Non importa quello che faccio, sembra che non possa selezionare nulla. Ovviamente mi manca qualcosa, non riesco a capire cosa. Che cosa devo fare per far funzionare XPath su questo feed Atom?
EDIT
Anche se questa domanda ha una risposta, ho scoperto questa domanda ha una quasi esatta duplicato: SelectNodes not working on stackoverflow feed
possibile duplicato del [SelectNodes non lavorano su alimentazione StackOverflow] (http://stackoverflow.com/questions/24734/selectnodes-not-working-on-stackoverflow-feed) –