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 6 et antérieur Discussion :

Visual basic et lecture d'un fichier XML


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut Visual basic et lecture d'un fichier XML
    j'essaie désespérément de lire dans un fichier XML

    le code VB :

    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
    19
    20
    21
    22
    23
    24
     
        ' ----------------------------------------
        '    déclaration des variables locales
        ' ----------------------------------------
        Dim monDocumentXML As New DOMDocument
        Dim mesNoeuds As IXMLDOMNodeList
        Dim unElement As IXMLDOMNode
     
     
        ' chargement du document xml
        monDocumentXML.Load (principale_form.boite_dialogue.FileName)
        MsgBox (principale_form.boite_dialogue.FileName)
     
        ' noeuds eleve
        Set mesNoeuds = monDocumentXML.SelectSingleNode("NUM")
        MsgBox (mesNoeuds.Length)
     
        ' chargement de chaque eleve
        For Each unElement In mesNoeuds
        	' parcours la totalité d'eleve pour récupérer les valeurs
            MsgBox ("test")
            MsgBox (unElement.Text)
     
        Next
    et la structure du fichier XML :

    Code xml : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?xml version='1.0' encoding='iso-8859-1'?>
    <!DOCTYPE master SYSTEM 'etudiant.dtd'>
    <master>
      <eleve>
         <NUN>1</NUN> 
         <Nom>mouton</Nom>
         <Prénom>moute</Prénom>
         <Age>2</Age>
         <Numéro></Numéro>
         <Suffixe></Suffixe>
         <TypeVoie></TypeVoie>
         <LibelléVoie></LibelléVoie>
         <Adresse></Adresse>
         <CodePostal></CodePostal>
         <NomCommune></NomCommune>
         <X></X>
         <Y></Y>
      </eleve>
      <eleve>
         <NUN>2</NUN>
         <Nom>brebis</Nom>
         <Prénom>moutone</Prénom>
         <Age>5</Age>
         <Numéro></Numéro>
         <Suffixe></Suffixe>
         <TypeVoie></TypeVoie>
         <LibelléVoie></LibelléVoie>
         <Adresse></Adresse>
         <CodePostal></CodePostal>
         <NomCommune></NomCommune>
         <X></X>
         <Y></Y>
      </eleve>
    </master>

    le problème c'est que l'exécution de ce code est vraiment bizarre. tout d'abord il n'y a aucune erreur et il exécute bien tout le code (j'ai mis différentes trace avec des msgbox) mais il n'exécute pas les msgbox ou il fait réfférence à des noeuds ( --> MsgBox (mesNoeuds.Length) et MsgBox (unElement.Text)) mais il rentre bien dans la boucle puisqu'il affiche le MsgBox ("test")

    donc là je comprends vraiment pas pourquoi il me zappe une partie de mon code
    si vous avez une idée je suis preneur !

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Par défaut
    Bonjour,
    d'apres ton xml, l'instruction monDocumentXML.SelectSingleNode("NUM") ne recuperera rien. A voir si c'est NUM ou NUN. De plus SelectSingleNode ne renverra qu'un noeud, ce n'est pas une liste, essaye plutot selectNodes("NUM")...
    A+
    dsr

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut
    Citation Envoyé par dsaunier Voir le message
    Bonjour,
    d'apres ton xml, l'instruction monDocumentXML.SelectSingleNode("NUM") ne recuperera rien. A voir si c'est NUM ou NUN. De plus SelectSingleNode ne renverra qu'un noeud, ce n'est pas une liste, essaye plutot selectNodes("NUM")...
    A+
    dsr
    en effet le NUM à la place du NUN ça marche déjà mieux enfin
    un msgbox(selectNodes("NUM").length) me retourne 0 donc il ne trouve pas de liste de noeud alors que si puisqu'avant avec le msgbox(selectNodes("NUN").length) il me trouvait pas de noeud donc il n'exécutait pas le code.

    j'ai beau relire les tutoriels (merci pour le lien mais j'ai déjà lu ) je ne vois vraiment pas pourquoi il n'arrive pas me parcourir ce fichier.

    je précise que je n'attends pas un code tout fait (qui de toute façon ne me serait pas utile car ce que je cherche à faire est plus compliqué mais je voudrais déjà comprendre pourquoi il n'effectue pas une opération qui "parrait" logique et bonne)

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 143
    Par défaut
    Bonjours, j'ai eu récemment l'occasion de me mettre à l'xml sous VB6.

    voici le type de routine que j'utilise pour la lecture :

    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
    19
     
    ' ----------------------------------------
        '    déclaration des variables locales
        ' ----------------------------------------
        Dim monDocumentXML As New MSXML2.DOMDocument
        Dim monElement As IXMLDOMElement
     
     
        ' chargement du document xml
        monDocumentXML.async = False  
        monDocumentXML.Load (principale_form.boite_dialogue.FileName)
        MsgBox (principale_form.boite_dialogue.FileName)
     
        ' chargement de chaque eleve
        For Each monElement In monDocumentXML.getElementsByTagName("eleve")
        	' parcours la totalité d'eleve pour récupérer les valeurs
            MsgBox (monElement.selectSingleNode("NUN").Text) 
            MsgBox (monElement.selectSingleNode("Nom").Text)                
        Next
    Voilà j'espère que ce petit bout de code va t'aider car j'avais pas mal galéré aussi au début à comprend le fonctionnement des fichiers Xml sous VB6.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Par défaut
    merci ça marche maintenant. j'avoue que je ne comprends pas trop pourquoi il ne voulait pas fonctionner avant (VB doit surement avoir une façon différente d'analyser le XML comparé à du javascript)

  6. #6
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673

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

Discussions similaires

  1. Problème de lecture d'un fichier XML d'InfoPath
    Par snadus dans le forum InfoPath
    Réponses: 7
    Dernier message: 06/06/2006, 14h45
  2. Lecture d'un fichier XML de config avec Java
    Par cofy dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 31/01/2006, 15h54
  3. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  4. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 12h04
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

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