j'ai un fichier XML qui a la structure suivante:C# et XPath - comment interroger
<mediawiki ...>
<siteinfo>...</siteinfo>
<page>
<title>The Title</title>
<id>42</id>
...
</page>
... more page items ...
</mediawiki>
I rouge un peu requête_xpath et écrit le code suivant:
_xmlArticlesDocument = new XmlDocument();
_xmlArticlesDocument.Load(xmlArticlesFileName);
Maintenant, je veux avoir une prise sur un élément de page avec un id-sous-élément donné. Donc j'ai écrit:
XmlNode node = _xmlArticlesDocument.DocumentElement.SelectSingleNode
("//mediawiki/page[id=" + id.ToString() + "]");
mais le noeud est toujours nul. J'ai essayé plusieurs requêtes, y compris "page/id", "page", "/ page", "// page" pour obtenir quoi que ce soit, mais le noeud est toujours nul. J'ai vérifié par l'inspection rapide la variable _xmlArticlesDocument et il contient le fichier XML correct avec la structure attendue.
Il me semble que j'ai manqué quelque chose de très basique, mais je n'ai aucune idée de quoi. Peut-être que quelqu'un ici a une idée?
Merci à l'avance, Frank
C'est la voie à suivre, j'ai eu beaucoup de problèmes avec cela, mais une fois que vous avez compris cela, c'est facile. :) –
Frapper le clou sur la tête! Le problème était le manquant namespacemanager, qui n'a pas été mentionné dans le tutoriel I rouge. Un petit changement dans la requête est nécessaire, car l'élément id est également dans l'espace de nommage: "a: page [a: id =" + id.toString() + "]" fait le bon travail. Merci beaucoup! – Aaginor