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

VB.NET Discussion :

Récupérer une valeur d'un xml dans une variable


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Récupérer une valeur d'un xml dans une variable
    Bonjour

    Je dispose du fichier xml suivant (que j'ai simplifié un peu) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" standalone="yes"?>
    <Contenu>
      <Utilisateurs>
        <Serveur>127.0.0.1</Serveur>
        <ID>TESTID</ID>
        <MDP>TESTMDP</MDP>
      </Utilisateurs>
      <Utilisateurs>
        <Serveur>154.192.1.6</Serveur>
        <ID>RETESTID</ID>
        <MDP>RETESTMDP</MDP>
      </Utilisateurs>
    </Contenu>
    J'ai créé une fenêtre avec un combobox où il est possible de sélectionner un utilisateur par son ID (par exemple, là ce serait les utilisateurs TEST et RETEST)

    En appuyant sur un bouton "Connexion", j'aimerais récupérer les 3 valeurs de l'utilisateur sélectionné (les valeurs dans les balises Serveur, ID et MDP) dans 3 variables.

    Pour cela, j'ai ce petit bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        Private Sub ButtonConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonConnect.Click
            Dim doc As New XmlDocument()
            Dim valeurentree As String = ComboBoxChoose.SelectedItem    'la variable valeurentree correspond à l'utilisateur selectionné dans le combobox
     
            If valeurentree <> "" Then      'si le combobox n'est pas vide
                doc.Load("utilisateurs.xml")    'on charge le fichier xml
                Dim node As XmlNode = doc.SelectSingleNode("Contenu/Utilisateurs/ID[. = '" & valeurentree & "']") 'on selectionne le noeud dont l'ID correspond à la valeur du combobox
                If node IsNot Nothing Then
                    'result = node.ParentNode...    'C'est ici que je bloque, je ne sais pas comment faire pour sélectionner chaque noeud enfant et récupérer leur valeur
                    doc.Save("utilisateurs.xml")
                    Me.Close()
                    MessageBox.Show("Vous allez être connecté avec l'utilisateur " & valeurentree)
                End If
            Else
                MessageBox.Show("Veuillez selectionner un utilisateur pour vous connecter")
            End If
     
        End Sub
    J'arrive à sélectionner le noeud parent avec les 3 noeuds enfants qui m'interessent mais je n'arrive pas à récupérer leur valeur...
    Ce n'est pourtant pas faute d'avoir essayé, j'essaie de trouver la solution depuis ce matin

    Si quelqu'un a une idée je suis preneur

    Bonne soirée

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    680
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 680
    Points : 1 183
    Points
    1 183
    Par défaut
    Bonjour,
    peut être une piste avec InnerText
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                'on selectionne le parent du noeud dont l'ID correspond à la valeur du combobox
                Dim node As XmlNode = doc.SelectSingleNode("Contenu/Utilisateurs/ID[. = '" & valeurentree & "']").ParentNode
                If node IsNot Nothing Then
                    'Display the contents of the child nodes.
                    If node.HasChildNodes Then
                        Dim i As Integer
                        For i = 0 To node.ChildNodes.Count - 1
                            Console.WriteLine(node.ChildNodes(i).InnerText)
                        Next i
                    End If
                End If

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour


    Ça marche très bien grâce à ta méthode

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    doc.Load("utilisateurs.xml")    'on charge le fichier xml
                Dim node As XmlNode = doc.SelectSingleNode("Contenu/Utilisateurs/ID[. = '" & valeurentree & "']").ParentNode
                If node IsNot Nothing Then
                    If node.HasChildNodes Then
                        urluser = node.ChildNodes(0).InnerText
                        iduser = node.ChildNodes(1).InnerText
                        mdpuser = node.ChildNodes(2).InnerText
                    End If
                End If
                Me.Close()
                MessageBox.Show("Vous allez être connecté avec l'utilisateur " & iduser)
    Merci beaucoup pour ton aide chrismonoye

    J'ai marqué le sujet en résolu

    Bonne journée


    Edit :

    J'ai un autre petit problème, tellement petit que je n'ose pas recréer un sujet pour ça

    Je dispose de 3 fenêtres : une où on sélectionne l'utilisateur (ChooseBox), la fenêtre principale où on entre l'url du serveur où se connecter (MainBox) et une petite fenêtre pour s'identifier (LoginBox)

    Lorsqu'on clique sur connexion dans la ChooseBox :
    - La ChooseBox se ferme
    - l'URL de l'utilisateur sélectionné se met dans le textbox de la MainBox
    - Le bouton OK de la MainBox est cliqué
    - La fenêtre LoginBox s'ouvre

    Et c'est là où ça ne va plus : il ne se passe rien, alors que les 2 textbox de la LoginBox devraient se remplir tout seul et le bouton Connexion devrait être cliqué (comme fait précédemment dans la MainBox)

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MainBox.txtUrl.Text = "ftp://" & urluser
                MainBox.btnOk.PerformClick()
                'la fenêtre LoginBox s'ouvre, où il faut entrer identifiant et mot de passe
                Thread.Sleep(2000) '2 secondes de pause pour lui laisser le temps de s'ouvrir
                LoginBox.txtUsername.Text = iduser
                LoginBox.txtPassword.Text = mdpuser
                LoginBox.btnLogin.PerformClick()
                'mais là il ne se produit rien, les 2 champs restent vides et le bouton n'est pas cliqué...
    Est-ce que quelqu'un voit le problème? Il doit manquer un petit quelque chose mais je ne vois pas quoi

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    C'est bon j'ai trouvé.

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

Discussions similaires

  1. [XSLT] mettre une valeur d'un XML dans une variable ?
    Par xiii34 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/04/2007, 19h14
  2. Réponses: 3
    Dernier message: 21/11/2006, 13h35
  3. Récupérer la valeur d'un champ dans une requête
    Par romaintaz dans le forum JDBC
    Réponses: 7
    Dernier message: 18/08/2006, 10h13
  4. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 17h29
  5. Récupérer les valeur d'un énuméré dans une string
    Par Oliv_75 dans le forum SL & STL
    Réponses: 5
    Dernier message: 28/09/2005, 01h55

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