[C#] XmlDocument.SelectNodes(), namespace & Xpath

Bonsoir à tous.

Je cherche comment utiliser la méthode SelectNodes() de XmlDocument pour récupérer des n�?uds contenant un attribut (ou les attributs directement) dont le nom est xlink:href, afin de convertir les chemins d’Url de relatif en absolu. Je suis une turbo quiche en ce qui concerne le Xpath / XML, mais j’ai cru comprendre que xlink était un namespace, mais aussi que SelectNodes accepte en second paramètre un namespace. Mais voilà je bloque à cet endroit, je ne sais absolument pas comment faire ce genre de chose, et google n’était clairement pas mon ami sur ce coup là.

Si vous aviez la technique… :smiley:

A priori, dixit la msdn, faut que tu mettes le path complet de ce que tu veux selectionner (le chemin du node donc). Pas d’apreciation sur l’attribut, ou sur le reste. En gros, tu selectionnes tout tes nodes, tu cherches poour chacun si ya l’attribut, et tu avises.

Ayé, j’ai trouvé!

XmlDocument output = new XmlDocument(); output.LoadXml(File.ReadAllText(input)); XmlNamespaceManager nsmgr = new XmlNamespaceManager(output.NameTable); nsmgr.AddNamespace("xlink", "http://www.w3.org/1999/xlink"); foreach (XmlNode node in output.SelectNodes( "//@xlink:href", nsmgr ) ) { ... }