J'essaye d'analyser un flux Atom par programme. J'ai l'atome XML téléchargé en tant que chaîne. Je peux charger le XML dans un XmlDocument
. Cependant, je ne peux pas parcourir le document en utilisant XPath. Chaque fois que j'essaie, j'obtiens null
.Aucun noeud sélectionné à partir du document XML Atom à l'aide de XPath?
Je me sers de ce flux Atom comme un test: http://steve-yegge.blogspot.com/feeds/posts/default
Appel SelectSingleNode()
revient toujours null
, sauf quand je l'utilise "/
". Voici ce que je suis en train en ce moment:
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);
}
Je pensais que cela aurait pu être à cause de mon XPath, donc j'ai aussi essayé une simple requête du nœud racine car je savais que la racine devrait fonctionner:
// I've tried both with & without the nsMngr declared above
XmlNode node = atom.SelectSingleNode("/feed");
Peu importe ce que je fais, il semble qu'il ne puisse rien sélectionner. Évidemment, il me manque quelque chose, je ne peux pas comprendre quoi. Qu'est-ce que je dois faire pour que XPath fonctionne sur ce flux Atom?
EDIT
Bien que cette question a une réponse, je trouve cette question a un double presque exacte: SelectNodes not working on stackoverflow feed
double possible de [SelectNodes ne fonctionne pas sur l'alimentation stackoverflow] (http://stackoverflow.com/questions/24734/selectnodes-not-working-on-stackoverflow-feed) –