IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Extraire les valeurs XML dans un tableau de string


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Architecte Cloud
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Architecte Cloud

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut Extraire les valeurs XML dans un tableau de string
    Bonjour à tous,

    Je bloque sur un petit point en C#

    J'ai un fichier XML composé à peu près comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <general>
      <AutresValeurs>
        <AutreValeur1>Test1</AutreValeur1>
        <AutreValeur2>Test2</AutreValeur2>
      </AutresValeurs>
      <MesValeurs>
        <MaValeur1>Valeur1</MaValeur1>
        <MaValeur2>Valeur2</MaValeur2>
      </MesValeurs>
    </general>
    Le but de ma fonction est de récupérer l'ensemble des valeurs des nodes contenus dans <MesValeurs> et de les inscrire dans un tableau de string pour un traitement
    Je n'ai aucun moyen de savoir combien de nodes existeront dans MesValeurs ni leur nom précis, je ne connais que le chemin jusque MesValeurs.

    J'ai bien regardé plusieurs Tuto/forum, mais je ne trouve rien expliquant comment faire ceci, et j'ai un peu de mal avec le XPath.

    j'ai essayé ce code, mais il me récupère toutes les valeurs en 1 fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    XPathNavigator nav = doc.CreateNavigator();
    XPathNodeIterator iter = nav.Select("general/MesValeurs");
    iter.MoveNext()
    si je mets une variable pour récupérer ce que donne le iter.MoveNext(), il contient l'ensemble des valeurs des nodes de MesValeurs concaténées


    Quelqu'un peut-il m'aider un peu?

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2004
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 304
    Points : 405
    Points
    405
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XPathNodeIterator iter = nav.Select("general/MesValeurs/*");

    http://jerome.developpez.com/xmlxsl/...lpage=&rpage=3
    S'il n'y a pas de Solution, c'est qu'il n'y a pas de Problème.
    ----------------------------------------------------------------------------------------
    Pour se protéger, un bon préservatif pour votre PC : AntiVir et SpyBot - Search & Destroy

  3. #3
    Nouveau membre du Club
    Profil pro
    Architecte Cloud
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Architecte Cloud

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    J'ai trouvé merci beaucoup!

    Par contre sais tu comment, une fois que j'ai fini tout mes traitements, remplacer des valeurs dans le xml?

    J'ai testé je suis bien sur le bon node, mais le SetValue() ne fonctionne pas

  4. #4
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Selon la MSDN, Les objets retournés de façon direct ou indirect par XPathDocument ont toujours la propriété CanEdit mise false donc, j'ose confirmé que qu'on peut pas modifier les valeurs des nodes d'un fichier XML ouvert avec XPathDocument.
    Oh, google vient de me le confirmé lui aussi :d

  5. #5
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Voici un code qui permet de charger et modifier en même temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                XmlDocument doc = new XmlDocument();
                doc.Load(@"xml.txt");
                XPathNavigator nav = doc.CreateNavigator();
                XPathNodeIterator iter = nav.Select("general/MesValeurs/*");
                iter.MoveNext();
                iter.Current.SetValue("Nouvelle valeur");

  6. #6
    Nouveau membre du Club
    Profil pro
    Architecte Cloud
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Architecte Cloud

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    désolé je n'avais pas trouvé cette info

    Je vais tester ça dès que possible, merci de votre aide à tous les 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/05/2012, 20h52
  2. Masquer les valeurs nulles dans un tableau
    Par cabville dans le forum Débuter
    Réponses: 9
    Dernier message: 24/10/2010, 21h00
  3. [XL-2007] Extraire les noms apparaissant dans un tableau de données
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 17/08/2009, 15h13
  4. [VB6] Extraire les valeurs différentes d'un tableau
    Par kciope dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/04/2009, 15h36
  5. [XML] mettre les valeurs XML dans un array
    Par yodark dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 05/01/2006, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo