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 :

Tester l'existence d'un noeud XML


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut Tester l'existence d'un noeud XML
    Bonjour à tous,
    Mon problème est simple, pourtant je butte dessus depuis plusieurs heures.
    Malgré mes recherches sur le net, je ne parviens pas à trouver la solution :
    Je cherche à tester l’existence d'un noeud spécifique dans une fichier XML.
    Je pense donc utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            Dim doc As New XmlDocument()
            doc.Load(NomFichier)
            Dim test As XmlNode
            Dim test_List As XmlNodeList = doc.SelectNodes("//I1_A1_L1") 
            For Each test In test_List
                MsgBox(test.Attributes.Count)
                If test.Attributes.Count > 0 Then
                    MsgBox("Trouvé")
                Else
                    MsgBox("pas trouvé")
                End If
            Next
    Pourtant ce code ne fonctionne pas.

    Si le noeud est trouvé, j'ai le premier message avec le chiffre 0 et un second message "non trouvé"
    Je peux comprendre ça : le premier noeud trouvé à l'index 0
    Mais si le noeud n'est pas trouvé, je n'ai aucun message ...

    Comment est-ce que je peux faire pour afficher le message trouvé quand le noeud existe et inversement ?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Tu mélanges élément et attribut, d'où ta confusion.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <Element attr1="xxx" attr2="yyy"> ... </Element>
    "Element" correspond à un élément, "attr1" et "attr2" à des attributs.

    Ton code, recherche des éléments et pour chacun d'entre eux, tu regardes le nombre d'attributs. Si ce dernier est nul, tu affiches le message "pas trouvé". Dans le cas contraire "trouvé".

    Mais la présence d'attributs ne signifie rien quand à l'existence de l'élément. La seule chose sur c'est que si tu as au moins un attribut, ton élément existe. Mais si tu n'en as pas, tu ne peux rien dire quant à l'existence de ton élément.

    Ici, il faut simplement que tu regardes la taille de la collection de noeud test_List. Si elle est nulle, c'est que l'élément n'est pas trouvé.

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut
    Merci de passer du temps pour répondre à ma question.
    J'ai modifier mon code comme suit et il a l'air de fonctionner, mais j'aimerai la confirmation que mon code est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            Dim doc As New XmlDocument()
            doc.Load(NomFichier)
            Dim test_List As XmlNodeList = doc.SelectNodes("//I1_A1_L1") 
             If test_List.Count > 0 Then
                MsgBox("Trouvé")
            Else
                MsgBox("pas trouvé")
            End If

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    21
    Par défaut
    Ca me semble correct

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut
    Impec alors !
    Merci beaucoup pour ton aide

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

Discussions similaires

  1. Tester l'existence d'un noeud dans un fichier xml
    Par tunwim dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2013, 14h32
  2. [XL-2010] Tester l'existence d'un attribut XML
    Par doowy38 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2013, 15h53
  3. Tester l'existence d'un noeud XML avec JavaScript
    Par molinadiaz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/02/2012, 14h42
  4. Tester l'existence d'un noeud dans un fichier xml
    Par andromeda dans le forum C#
    Réponses: 2
    Dernier message: 07/02/2009, 10h29
  5. xmldocument : tester l'existence d'un noeud enfant
    Par Rustine dans le forum Delphi
    Réponses: 3
    Dernier message: 04/08/2006, 17h37

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