Aller au contenu

Change
Bienvenue sur GeekZone
Inscrivez-vous sur GeekZone pour profiter des fonctions avancées du forum, proposer des news, participer aux conversations, ouvrir votre galerie, profiter de la messagerie interne et venir tester nos modérateurs avec du bon troll... Attention, ils ont la gâchette facile. C’est aussi pour ça que GeekZone est le meilleur site de passionnés depuis 2002 ! Si vous avez déjà un compte, connectez-vous - sinon, il est temps d'en créer un.

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

- - - - -

  • Veuillez vous connecter pour répondre
2 réponses à ce sujet

#1
PERECil

PERECil

    Développeur de Magna Stella

  • Membre
  • PipPipPipPipPipPipPip
  • 4624 messages
  • Lieu:Strasbourg, France
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...  :D

#2
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
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.

#3
PERECil

PERECil

    Développeur de Magna Stella

  • Membre
  • PipPipPipPipPipPipPip
  • 4624 messages
  • Lieu:Strasbourg, France
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 ) )
{ ... }





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)