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 :

[XML] Lire les données


Sujet :

VB 6 et antérieur

  1. #1
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut [XML] Lire les données
    Bonjour,

    Peut-être ai-je mal cherché sur le forum, mais je n'ai pas trouvé ce que je souhaite faire, donc, je m'en remets à vous.

    Je cherche à utiliser (en VB6) la référence MSXML2 pour parser un fichier XML. Mon problème est que je ne connais pas à l'avance la profondeur de l'arborescence. J'ai bien pensé à une fonction récursive, mais je ne m'en sort pas.

    Alors si quelqu'un(e) avait déjà réalisé ce genre de chose et s'il pouvait m'aider, je suis preneur.

    Merci à vous.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Bonjour PC75,

    Montre-nous ton code que l'on puisse voir.

    Que cherches-tu exatement ?
    As-tu regarder la fonction SelectNodes ? pour faire des recherches c'est très pratique !

    Personnellement j'utilise MsXml4.

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    as tu vu le tutoriel à Khany ..?

    à tu un peu de code à nous monter histoire de voir où tu bloque..?

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Merci à vous de vous intéresser à mon problème.

    Voilà un extrait de mon fichier XML (+ fichier foint) :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
     
                    <AGENT IDAGT="0068883">
                        <NOM_PATRONYMIQUE>DUPONT</NOM_PATRONYMIQUE>
                        <PRENOM>JEAN</PRENOM>
                        <DATE_NAISSANCE>14/08/1935</DATE_NAISSANCE>
                        <SEXE>1</SEXE>
                        <NIR_AGT>135087511023380</NIR_AGT>
                        <CNR_AGT>075 D001 047385</CNR_AGT>
                        <SITUATION_COURANTE>
                            <IDMETIER>SPO101</IDMETIER>
                            <IDSTAT>02</IDSTAT>
                            <IDSTAT2>FP</IDSTAT2>
                            <IDGRADE>050103</IDGRADE>
                            <CODFONC>421</CODFONC>
                            <ADRESS3>14 RUE DE CLIGNANCOURT</ADRESS3>
                            <ADRESS4>PARIS</ADRESS4>
                            <CP>75018</CP>
                            <VILLE>PARIS</VILLE>
                        </SITUATION_COURANTE>
                        <ACCIDENTS>
                            <ACCIDENT IDACC="25977">
                                <IDSTATUT>11</IDSTATUT>
                                <ID_HOR_QUOT>3</ID_HOR_QUOT>
                                <NEG_GRADE>019001</NEG_GRADE>
                                <IDFICHE_METIER>APE201</IDFICHE_METIER>
                                <TYPE_ACC>TRAVAIL</TYPE_ACC>
                                <DATE_ACC>11/06/2006</DATE_ACC>
                                <HEURE_ACC>10:00:00</HEURE_ACC>
                                <DECLARATION>12/06/2006</DECLARATION>
                                <CIRCONSTANCES>l&apos;agent est tombé dans les escaliers en portant des dossiers à son supérieur hiérarchique</CIRCONSTANCES>
                                <H_ENTREE1>08:00:00</H_ENTREE1>
                                <H_SORTIE1>12:00:00</H_SORTIE1>
                                <H_ENTREE2>13:00:00</H_ENTREE2>
                                <H_SORTIE2>17:00:00</H_SORTIE2>
                                <SEQUELLE_ACC>1</SEQUELLE_ACC>
                                <DUREE_TRAV>0</DUREE_TRAV>
                                <QUOTITE_TRAV>0</QUOTITE_TRAV>
                                <DECES>0</DECES>
                                <LIB_CMI>fracture de la cheville gauche avec arrêt de travail du 12/06/2006 au 13/07/2006
    contusion talon gauche</LIB_CMI>
                                <AUT_GRADE>v _453</AUT_GRADE>
                                <AUT_METIER>agent</AUT_METIER>
                                <JOUR_ACC>7</JOUR_ACC>
                                <MODIF>12/06/2006</MODIF>
                                <LATERALITE>DROITE</LATERALITE>
                                <ACC_EXPO_SANG>NON</ACC_EXPO_SANG>
                                <ENTRAINE_BLESSURES>
                                    <ENTRAINE_BLESSURE IDBLESSURE="25965">
                                        <IDSIEGE_LES>75</IDSIEGE_LES>
                                        <IDNATURE_LES>09</IDNATURE_LES>
                                        <LAT_BLESSURE>DROITE</LAT_BLESSURE>
                                    </ENTRAINE_BLESSURE>
                                    <ENTRAINE_BLESSURE IDBLESSURE="26060">
                                        <IDSIEGE_LES>82</IDSIEGE_LES>
                                        <IDNATURE_LES>01</IDNATURE_LES>
                                        <LAT_BLESSURE>GAUCHE</LAT_BLESSURE>
                                    </ENTRAINE_BLESSURE>
                                </ENTRAINE_BLESSURES>
                                <ACCIDENT_SERVICE>
                                    <IDLIEU>101</IDLIEU>
                                    <IDTACHE>0303</IDTACHE>
                                    <SECOURS_VICTIME>0</SECOURS_VICTIME>
                                </ACCIDENT_SERVICE>
                                <PERSONNES>
                                    <PERSONNE IDPERSONNE="370">
                                        <NOM_PERSONNE>BABA</NOM_PERSONNE>
                                        <PRENOM>USS</PRENOM>
                                        <QUALITE>Monsieur</QUALITE>
                                        <TYPE_IMPLIC>TEMOIN</TYPE_IMPLIC>
                                        <COMENT_PERSONNE>collègue de l&apos;agent matricule1078 078 a vu l&apos;agent tombé ds les escaliers et se blesser à la chevill</COMENT_PERSONNE>
                                    </PERSONNE>
                                </PERSONNES>
                                <MET_EN_CAUSES>
                                    <MET_EN_CAUSE ID_MET_CAUSE="22868">
                                        <ID_ELM_T>T0202</ID_ELM_T>
                                    </MET_EN_CAUSE>
                                </MET_EN_CAUSES>
                                <A_POUR_CAUSES>
                                    <A_POUR_CAUSE ID_CAUSE="22847">
                                        <ID_FAC_POT>1240</ID_FAC_POT>
                                    </A_POUR_CAUSE>
                                </A_POUR_CAUSES>
                                <FAITS ID_FAIT="22813">
                                    <LIB_FAIT>l&apos;agent est tombé dans les escaliers</LIB_FAIT>
                                    <DATE_ANALYSE>12/06/2006</DATE_ANALYSE>
                                </FAITS>
                            </ACCIDENT>
                            <ACCIDENT IDACC="25913">
                                <IDSTATUT>11</IDSTATUT>
                                <ID_HOR_QUOT>98</ID_HOR_QUOT>
                                <NEG_GRADE>019001</NEG_GRADE>
                                <IDFICHE_METIER>APE201</IDFICHE_METIER>
                                <TYPE_ACC>TRAVAIL</TYPE_ACC>
                                <DATE_ACC>07/06/2006</DATE_ACC>
                                <HEURE_ACC>10:00:00</HEURE_ACC>
                                <DECLARATION>08/06/2006</DECLARATION>
                                <CIRCONSTANCES>l&apos;agent s&apos;est cogné la tête sur son bureau en s&apos;endormant</CIRCONSTANCES>
                                <H_ENTREE1>08:00:00</H_ENTREE1>
                                <H_SORTIE2>17:30:00</H_SORTIE2>
                                <SEQUELLE_ACC>1</SEQUELLE_ACC>
                                <DUREE_TRAV>0</DUREE_TRAV>
                                <QUOTITE_TRAV>0</QUOTITE_TRAV>
                                <DECES>0</DECES>
                                <LIB_CMI>fracture nez , a donné lieu à un arrêt de travail du 8/06/2006 au 30/06/2006</LIB_CMI>
                                <AUT_GRADE>v _453</AUT_GRADE>
                                <AUT_METIER>agent</AUT_METIER>
                                <JOUR_ACC>3</JOUR_ACC>
                                <MODIF>08/06/2006</MODIF>
                                <LATERALITE>DROITE</LATERALITE>
                                <ACC_EXPO_SANG>NON</ACC_EXPO_SANG>
                                <ENTRAINE_BLESSURES>
                                    <ENTRAINE_BLESSURE IDBLESSURE="25843">
                                        <IDSIEGE_LES>221</IDSIEGE_LES>
                                        <IDNATURE_LES>09</IDNATURE_LES>
                                        <LAT_BLESSURE>SANSOBJET</LAT_BLESSURE>
                                    </ENTRAINE_BLESSURE>
                                    <ENTRAINE_BLESSURE IDBLESSURE="25903">
                                        <IDSIEGE_LES>51</IDSIEGE_LES>
                                        <IDNATURE_LES>01</IDNATURE_LES>
                                        <LAT_BLESSURE>DROITE</LAT_BLESSURE>
                                    </ENTRAINE_BLESSURE>
                                </ENTRAINE_BLESSURES>
                                <ACCIDENT_SERVICE>
                                    <IDLIEU>101</IDLIEU>
                                    <IDTACHE>0301</IDTACHE>
                                    <SECOURS_VICTIME>0</SECOURS_VICTIME>
                                </ACCIDENT_SERVICE>
                                <PERSONNES>
                                    <PERSONNE IDPERSONNE="284">
                                        <NOM_PERSONNE>BABA</NOM_PERSONNE>
                                        <PRENOM>BABA</PRENOM>
                                        <QUALITE>monsieur</QUALITE>
                                        <TYPE_IMPLIC>TEMOIN</TYPE_IMPLIC>
                                        <COMENT_PERSONNE>chef de l&apos;agent matricule : 0640 516 a déclaré avoir vu l&apos;agent tomber sur son bureau</COMENT_PERSONNE>
                                    </PERSONNE>
                                </PERSONNES>
                                <MET_EN_CAUSES>
                                    <MET_EN_CAUSE ID_MET_CAUSE="22818">
                                        <ID_ELM_T>T0320</ID_ELM_T>
                                    </MET_EN_CAUSE>
                                </MET_EN_CAUSES>
                                <A_POUR_CAUSES>
                                    <A_POUR_CAUSE ID_CAUSE="22803">
                                        <ID_FAC_POT>280</ID_FAC_POT>
                                    </A_POUR_CAUSE>
                                </A_POUR_CAUSES>
                                <FAITS ID_FAIT="22764">
                                    <LIB_FAIT>l&apos;agent s&apos;est assoupi sur son bureau</LIB_FAIT>
                                    <DATE_ANALYSE>08/06/2006</DATE_ANALYSE>
                                </FAITS>
                            </ACCIDENT>
                            <ACCIDENT IDACC="25682">
                                <IDSTATUT>11</IDSTATUT>
                                <ID_HOR_QUOT>3</ID_HOR_QUOT>
                                <NEG_GRADE>019001</NEG_GRADE>
                                <IDFICHE_METIER>APE201</IDFICHE_METIER>
                                <TYPE_ACC>TRAVAIL</TYPE_ACC>
                                <DATE_ACC>29/05/2006</DATE_ACC>
                                <HEURE_ACC>11:15:00</HEURE_ACC>
                                <DECLARATION>29/05/2006</DECLARATION>
                                <CIRCONSTANCES>l&apos;agent a trébuché entrainant une chute dans les escalier </CIRCONSTANCES>
                                <H_ENTREE1>08:30:00</H_ENTREE1>
                                <H_SORTIE2>18:00:00</H_SORTIE2>
                                <SEQUELLE_ACC>1</SEQUELLE_ACC>
                                <DUREE_TRAV>0</DUREE_TRAV>
                                <QUOTITE_TRAV>0</QUOTITE_TRAV>
                                <DECES>0</DECES>
                                <LIB_CMI>Fracture sacrum</LIB_CMI>
                                <AUT_GRADE>v _453</AUT_GRADE>
                                <AUT_METIER>agent</AUT_METIER>
                                <JOUR_ACC>1</JOUR_ACC>
                                <MODIF>12/06/2006</MODIF>
                                <LATERALITE>DROITE</LATERALITE>
                                <ACC_EXPO_SANG>NON</ACC_EXPO_SANG>
                                <ENTRAINE_BLESSURES>
                                    <ENTRAINE_BLESSURE IDBLESSURE="25563">
                                        <IDSIEGE_LES>52</IDSIEGE_LES>
                                        <IDNATURE_LES>01</IDNATURE_LES>
                                        <LAT_BLESSURE>DROITE</LAT_BLESSURE>
                                    </ENTRAINE_BLESSURE>
                                    <ENTRAINE_BLESSURE IDBLESSURE="25949">
                                        <IDSIEGE_LES>644</IDSIEGE_LES>
                                        <IDNATURE_LES>09</IDNATURE_LES>
                                        <LAT_BLESSURE>SANSOBJET</LAT_BLESSURE>
                                    </ENTRAINE_BLESSURE>
                                </ENTRAINE_BLESSURES>
                                <ACCIDENT_SERVICE>
                                    <IDLIEU>201</IDLIEU>
                                    <SECOURS_VICTIME>0</SECOURS_VICTIME>
                                </ACCIDENT_SERVICE>
                                <PERSONNES>
                                    <PERSONNE IDPERSONNE="58">
                                        <NOM_PERSONNE>X</NOM_PERSONNE>
                                        <PRENOM>X</PRENOM>
                                        <ADRESSE>x</ADRESSE>
                                        <ASSURANCE>x</ASSURANCE>
                                        <QUALITE>x</QUALITE>
                                        <POLICE>x</POLICE>
                                        <SINISTRE>x</SINISTRE>
                                        <TYPE_IMPLIC>TEMOIN</TYPE_IMPLIC>
                                    </PERSONNE>
                                </PERSONNES>
                                <MET_EN_CAUSES>
                                    <MET_EN_CAUSE ID_MET_CAUSE="22698">
                                        <ID_ELM_T>T3110</ID_ELM_T>
                                    </MET_EN_CAUSE>
                                </MET_EN_CAUSES>
                                <A_POUR_CAUSES>
                                    <A_POUR_CAUSE ID_CAUSE="22689">
                                        <ID_FAC_POT>9812</ID_FAC_POT>
                                    </A_POUR_CAUSE>
                                </A_POUR_CAUSES>
                            </ACCIDENT>
                        </ACCIDENTS>
                        <MALADIE_PROFESSIONNELLES>
                            <MALADIE_PROFESSIONNELLE IDMP="25620">
                                <IDSTATUT>02</IDSTATUT>
                                <IDSERVICE>V88090</IDSERVICE>
                                <IDGRADE>050103</IDGRADE>
                                <IDFICHE_METIER>SPO101</IDFICHE_METIER>
                                <TYPE_MALADIE>MALADIE PRO</TYPE_MALADIE>
                                <N0_TAB>51</N0_TAB>
                                <DECLARATION>12/06/2006</DECLARATION>
                                <DATE_CMI>12/06/2006</DATE_CMI>
                                <DESC_FONCTIONS>ANIMATEUR</DESC_FONCTIONS>
                                <JOUR_MP>0</JOUR_MP>
                                <DECES_MP>0</DECES_MP>
                                <MODIF>12/06/2006</MODIF>
                                <PERIODE_EXPOS>
                                    <PERIODE_EXPO IDEXPO="218">
                                        <DEBUT_EXPO>10/05/2006</DEBUT_EXPO>
                                        <FIN_EXPO>09/06/2006</FIN_EXPO>
                                        <DUREE_EXPO>31</DUREE_EXPO>
                                    </PERIODE_EXPO>
                                </PERIODE_EXPOS>
                            </MALADIE_PROFESSIONNELLE>
                        </MALADIE_PROFESSIONNELLES>
                    </AGENT>
                    <AGENT IDAGT="0088102">
                        <NOM_PATRONYMIQUE>ANNE</NOM_PATRONYMIQUE>
                        <PRENOM>FRANCIS</PRENOM>
                        <DATE_NAISSANCE>03/10/1935</DATE_NAISSANCE>
                        <SEXE>1</SEXE>
                        <NIR_AGT>135105046800176</NIR_AGT>
                        <CNR_AGT>075 D001 046287</CNR_AGT>
                        <SITUATION_COURANTE>
                            <IDMETIER>CLT501</IDMETIER>
                            <IDSTAT>02</IDSTAT>
                            <IDSTAT2>FP</IDSTAT2>
                            <IDHOR_QUOT>3</IDHOR_QUOT>
                            <IDGRADE>080101</IDGRADE>
                            <ENTREE_SERVICE>06/01/2000</ENTREE_SERVICE>
                            <ENTREE_METIER>06/01/2000</ENTREE_METIER>
                            <CODFONC>24</CODFONC>
                        </SITUATION_COURANTE>
                        <MALADIE_PROFESSIONNELLES>
                            <MALADIE_PROFESSIONNELLE IDMP="25641">
                                <ID_HOR_QUOT>3</ID_HOR_QUOT>
                                <IDSTATUT>02</IDSTATUT>
                                <IDGRADE>080101</IDGRADE>
                                <IDFICHE_METIER>CLT501</IDFICHE_METIER>
                                <TYPE_MALADIE>MALADIE PRO</TYPE_MALADIE>
                                <N0_TAB>11</N0_TAB>
                                <DECLARATION>13/06/2006</DECLARATION>
                                <DATE_CMI>13/06/2006</DATE_CMI>
                                <DESC_FONCTIONS>Joauait au clown dans les écoles</DESC_FONCTIONS>
                                <ENTREE_SERVICE>06/01/2000</ENTREE_SERVICE>
                                <ENTREE_METIER>06/01/2000</ENTREE_METIER>
                                <JOUR_MP>0</JOUR_MP>
                                <DECES_MP>0</DECES_MP>
                                <MODIF>13/06/2006</MODIF>
                                <PERIODE_EXPOS>
                                    <PERIODE_EXPO IDEXPO="234">
                                        <DEBUT_EXPO>06/01/2000</DEBUT_EXPO>
                                        <FIN_EXPO>13/06/2006</FIN_EXPO>
                                        <DUREE_EXPO>2351</DUREE_EXPO>
                                    </PERIODE_EXPO>
                                </PERIODE_EXPOS>
                            </MALADIE_PROFESSIONNELLE>
                        </MALADIE_PROFESSIONNELLES>
                    </AGENT>
    Et le bout de code avec lequel je me bats depuis deux jours :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Private Sub CmdExecuter_Click()
     
        Dim Serv, Servs, Servn, Servn1 As Variant
     
        Dim oDvpDOMDocument As MSXML2.IXMLDOMDocument
        Dim oMembreDvp As MSXML2.IXMLDOMElement
     
        Set oDvpDOMDocument = New MSXML2.DOMDocument
     
        ' Chargement du document XML
     
        oDvpDOMDocument.async = False ' permet de charger entièrement le document en mémoire avant le traitement
     
    '    If oDvpDOMDocument.Load(App.Path & "\data\dvp.xml") Then
        If oDvpDOMDocument.Load(App.Path & "\data\export.xml") Then
            'MsgBox "Document XML correctement chargé"
        Else
            MsgBox "Erreur de lecture du document XML"
            End
        End If
     
        ' affichage dans une ListBox des vntPseudos des membres
        Set oMembreDvp = oDvpDOMDocument.documentElement
     
          Set Serv = oMembreDvp.getElementsByTagName("AGENT")
     
       If Not oMembreDvp Is Nothing Then
     
          For Each Servs In Serv
             Debug.Print Serv.Item(4).Attributes.Item(0).nodeName & " = " & Serv.Item(4).Attributes.Item(0).nodeValue
             For Servn = 0 To Servs.childNodes.length - 1
               Debug.Print Servs.childNodes.Item(Servn).hasChildNodes & " " & Servs.childNodes.Item(Servn).nodeName & " = " & Servs.childNodes.Item(Servn).nodeTypedValue
    '            If Servs.hasChildNodes Then
    '               For Servn1 = 0 To Servn.childNodes.length - 1
    '                  'Debug.Print Servn.childNodes.Item(Servn1).nodeName & " = " & Servs.childNodes.Item(Servn).nodeTypedValue
    '                 Debug.Print Servn.childNodes.Item(Servn1).nodeName & " = " & Servs.childNodes.Item(Servn).nodeTypedValue
    '               Next
    '            End If
             Next
          Next
       End If
     
       Set oMembreDvp = Nothing
       Set oDvpDOMDocument = Nothing
     
    End Sub
    PS : Sauriez-vous s'il existe un pilote ODBC pour le format XML ?

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    d'ou viens ton fichier XML ..., l'instruction load n'arrive pas à le lire..?

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Citation Envoyé par bbil
    d'ou viens ton fichier XML ..., l'instruction load n'arrive pas à le lire..?
    Mon fichier XML provient d'une extraction à partir d'une autre application. J'ai mis un extrait en pièce jointe car l'indentation entre les balises QUOTES ne passe pas.

    Le load se passe très bien.

    En fait, le but est de récupérer ces données pour construire une base Access.
    Mais pour un agent, on peut avoir un ou plusieurs ACCIDENTS, pour un ACCIDENT, on peut avoir un ou plusieurs ENTRAINE BLESSURE, ...

    Et c'est ça qui me pose problème.

    Avec le code que j'ai commencé à écrire, j'arrive à lire les données AGENT (NOM, PRENOM, ...) mais quand je lis SITUATION COURANTE, le debug.print m'affiche une chaine qui contient les valeurs concaténées des neufs noeuds enfant.

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ben ton extrait ne passe pas le load... tu n'en aurai pas un autre..? où dois-je chercher pourquoi il ne passe pas (ce qui n'est pas à priori ton probléme..)

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Ci-joint un fichier qui doit passer le load.

    Merci encore

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens voila la fonction récursive... (à amèliorer .. sans doute, résultat dans fenêtre exécution CTRL G..)

    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
     
     Sub ParcoursDomElement(Xelem As MSXML2.IXMLDOMElement)
       Dim xChild
       Dim xElem2 As MSXML2.IXMLDOMElement
       Dim xText
       Debug.Print Xelem.nodeName & " : ";
       For Each xChild In Xelem.childNodes
          If xChild.nodeType = MSXML2.NODE_ELEMENT Then
             Set xElem2 = xChild
             ParcoursDomElement xElem2
         Else
              Debug.Print xChild.nodeValue
         End If
       Next
     End Sub

    et pour l'appel.. modifie ta fonction ...en t'inspirant de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ...
     If Not oMembreDvp Is Nothing Then
     
          For Each servs In Serv
               Debug.Print "......................"
                ParcoursDomElement servs
            Next
       End If
    ....

  10. #10
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Merci bbil,

    Sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ParcoursDomElement Servs
    j'obtiens ce message d'erreur :
    Type d'argument ByRef incompatible
    Mais, je mets résolu, car j'ai découvert que BusinessObjects est capable de lire les fichiers XML, et cela me convient.

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par pc75
    Re,

    Merci bbil,

    Sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ParcoursDomElement Servs
    j'obtiens ce message d'erreur :


    Mais, je mets résolu, car j'ai découvert que BusinessObjects est capable de lire les fichiers XML, et cela me convient.
    à oui j'ai modifié la déclaration de ta variable Servs...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Dim servs As MSXML2.IXMLDOMElement
    dans la mesure du possible j'essai d'éviter les "variants" .. c'est quand même plus clair ensuite...

  12. #12
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Merci, ça marche nickel.

    Je garde ça sous le coude au cas ou.

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

Discussions similaires

  1. lire les données xml
    Par thierry007 dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/10/2012, 09h17
  2. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  3. lire les données sur un port RS232
    Par xave dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 16h40
  4. [VB+Lotus Notes] Lire les données d'une DB Lotus
    Par kenn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/08/2005, 15h21
  5. [CR] lire les données de gauche a droite
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/10/2004, 18h23

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