comment utiliser XPath avec XDocument?

Il y a une question similaire, mais il semble que la solution n'a pas fonctionné dans mon cas: Quelque chose d'étrange avec XDocument, XPath et les espaces de noms

Voici le XML, je travaille avec:

<?xml version="1.0" encoding="utf-8"?>
<Report Id="ID1" Type="Demo Report" Created="2011-01-01T01:01:01+11:00" Culture="en" xmlns="http://demo.com/2011/demo-schema">
    <ReportInfo>
        <Name>Demo Report</Name>
        <CreatedBy>Unit Test</CreatedBy>
    </ReportInfo>
</Report>

Et ci-dessous le code que j'ai pensé qu'il devrait fonctionner, mais il n'a pas...

XDocument xdoc = XDocument.Load(@"C:\SampleXML.xml");
XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable()); 
xnm.AddNamespace(String.Empty, "http://demo.com/2011/demo-schema");
Console.WriteLine(xdoc.XPathSelectElement("/Report/ReportInfo/Name", xnm) == null);

Quelqu'un a une idée?
Merci.

  • Voir la réponse ci-dessous, il ne fonctionne pas comme les XPath 1.0 mise en œuvre ne peut pas faire face à un vide préfixe
  • Comme d'autres, a déclaré ici, n'utilisez pas un vide préfixe lors de l'ajout d'un espace de Noms à l' [XmlNamespaceManager]. Je suis juste en ajoutant ce commentaire dans le cas où quelqu'un veut voir un petit exemple de code avec un document qui a plusieurs [xmlns] attributs, avec et sans suffixe. Voir ici: stackoverflow.com/a/38272604/5838538
InformationsquelleAutor jojo | 2011-06-02