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

4D Discussion :

[débutant 4D v13] Parcours de fichier XML pour récupérer les informations


Sujet :

4D

  1. #1
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjours je suis un novice en langage 4D et je bloque présentement sur l'extraction des données à partir d'un fichier XML.
    je m'explique ,j'ai un fichier XML dans lequel je compte parcourir en une seule fois dans une boucle afin de stocker les donner dont j'ai besoin dans un tableau sauf que je bloque sur une ligne de mon fichier XML voici le fichier XML en question ci-dessous et le code que j'ai présentement réussi à faire.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    ?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <cis:sentences xmlns:cis="http://ws.synodos.cismef.org/">
     
      <cis:sentence iddoc="0" idpatient="0" idsentence="0">
        <cis:text>DIABETE</cis:text>
        <cis:indexations>
          <cis:indexation end="7" idcismef="HPO_TE_HP:0000819" idterm="HP:0000819" offset="0" start="0" ter="HPO">
            <cis:term>
              <cis:label lang="fr">diabète</cis:label>
            </cis:term>
            <cis:categorization/>
          </cis:indexation>
          <cis:indexation end="7" idcismef="MSH_D_003920" idterm="D003920" offset="0" start="0" ter="MSH" umlscui="C0011849">
            <cis:term>
              <cis:label lang="fr">diabète</cis:label>
            </cis:term>
            <cis:categorization>
              <cis:category idcategory="MT11" idcismef="CIS_MT_11" origin="cismef">
                <cis:label lang="fr">endocrinologie</cis:label>
              </cis:category>
              <cis:category idcategory="MT122" idcismef="CIS_MT_122" origin="cismef">
                <cis:label lang="fr">métabolisme</cis:label>
              </cis:category>
              <cis:category idcategory="DISO" idcismef="UML_SG_DISO" origin="umls">
                <cis:label lang="fr">Troubles</cis:label>
              </cis:category>
              <cis:category idcategory="T047" idcismef="UML_ST_T047" origin="umls">
                <cis:label lang="fr">maladie ou syndrome</cis:label>
              </cis:category>
            </cis:categorization>
          </cis:indexation>
          <cis:indexation end="7" idcismef="NCI_CO_C2985" idterm="C2985" offset="0" start="0" ter="NCI" umlscui="C0011849">
            <cis:term>
              <cis:label lang="fr">diabète</cis:label>
            </cis:term>
            <cis:categorization>
              <cis:category idcategory="DISO" idcismef="UML_SG_DISO" origin="umls">
                <cis:label lang="fr">Troubles</cis:label>
              </cis:category>
              <cis:category idcategory="T047" idcismef="UML_ST_T047" origin="umls">
                <cis:label lang="fr">maladie ou syndrome</cis:label>
              </cis:category>
            </cis:categorization>
          </cis:indexation>
        </cis:indexations>
      </cis:sentence>
     
    </cis:sentences>

    Code que j'ai réalisé
    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
     
    C_TEXTE($1;$DataXml)
    C_ENTIER LONG($nbElement)
     
    $DataXml:=$1     //donné XML 
    $Ref:=$2         //Référence du fichier
     
    //Variable 
    C_TEXTE($xData)                        //Variable temporaire de parcourd
    C_TEXTE(xmlLng)                        //Variable de langue
    TABLEAU TEXTE(xmlTermes;50)          //Tableau des Termes
    TABLEAU TEXTE(xmlCategorie;50)      //Tableau categorie
    TABLEAU TEXTE(xmlIDMaladie;50)     //tableau Id Maladie
    TABLEAU TEXTE(xmlIDTermes;50)      //tableau Id Termes
     
    //Extract XML
    $Compter_Ref:=DOM Compter elements XML($Ref;"cis:sentence")
    Boucle ($i;1;$Compter_Ref)
     
    //Parcourd d'en-tête
    $xml_Tmp:=DOM Lire element XML($Ref;"cis:sentence";$i;$xData)
    $xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:indexations";1;$xData)
    $xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:indexation";1;$xData)
     
    //Recuperation des première DATA
    $xml_TmpAttA:=DOM LIRE ATTRIBUT XML PAR NOM($xml_Tmp;"idcismef";xmlIDMaladie{0}) //recuperations de id maladie
    $xml_TmpAttB:=DOM LIRE ATTRIBUT XML PAR NOM($xml_Tmp;"idterm";xmlIDTermes{0})   //recuperation de id du terme
     
    $xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:term";1;$xData)    //Récuperation de la reference suivantes
    $xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:label";1;xmlTermes{0})   //Recuperation du terme
    $xml_TmpAttA:=DOM LIRE ATTRIBUT XML PAR NOM($xml_Tmp;"lang";xmlLng)  //Recuperation de la langue 
     
     //$xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:categorization";1;$xData{1}) //Ligne ou ça bloque
     
    Fin de boucle
    je me demande pas si je m'y prends très mal ? , cependant je serais ravi d'avoir vos remarques suggestions
    merci et à bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    Bonjour

    Il y a plusieurs problèmes sur ton code

    - d'abord dans le fichier XML, ligne 12, il y a une balise fermante cis:categorization alors qu'il n'y a pas de balise ouvrante.

    - dans la structure de ta boucle : comme tu n'as qu'une boucle qui ne se réalise qu'une fois (1 seul élément cis:sentence), tu ne descends que sur la première branche de ton arbre DOM. Et justement dans la première branche se trouve la ligne 12 du fichier xml ce qui provoque une erreur "élément inconnu"

    - il faudrait que tu mettes en place une boucle secondaire pour boucler sur tous les éléments cis:indexation

    - ligne 33 de ton code 4D, tu récupères une valeurs dans $xData{1) or tu l'as déclaré comme variable texte pas comme tableau

    - ligne 26 à 30, une fois ta sous-boucle en place, tu vas écraser à chaque fois l'élément 0 de tes tableaux. L'élément 0 ne remplira pas ton tableau, il faut que tu utilises le n° de variable de la boucle pour remplir la ligne correspondante ou bien utiliser AJOUTER A TABLEAU

    - lignes 11 à 14, c'est bizarre de déclarer à l'avance une taille de 50 pour tes tableaux. Rien ne dit que ça suffira en fonction du doc XML.

    - ligne 2 : ton paramètre $1 n'est en fait pas utilisé dans toute ta méthode. Tu peux le supprimer et transformer le $2 en $1

    Une fois tout cela réglé ça devrait marcher mieux.

  3. #3
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjour
    Merci de ta réponse @jmbiraghi, en ce qui concerne l'erreur dans le fichier XML à la ligne 12 je ne peux le corriger car je ne fais que récupérer celle-ci à distance depuis un service et je la traite comme telle.
    Cependant je ne suis pas expert en langage 4D je commence tout juste, mais j'ai tout de même essayé de faire certaine modification de mon niveaux dans ce langage de la manière suivante:

    Code 4D : 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
     
    C_TEXTE($1;$2)                              //Transformation en Texte
     
    C_TEXTE($xMemEl)                          //Variable de type texte 
    TABLEAU TEXTE($xTIndent;0)           //Tableau d'indentation 
     
     
    $Cpt_Element:=DOM Compter elements XML($2;"cis:sentence")
    Boucle ($i;1;$Cpt_Element)
    $xml_Tmp:=DOM Lire element XML($2;"cis:sentence";$i;$xData)
    $xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:indexations";$i;$xData)
     
    //Comptage d'éléments et lecture de premiers niveaux 
    $Cpt_i:=DOM Compter elements XML($xml_Tmp;"cis:indexation")
    $xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:indexation";$i;$xData)
     
    //Création du tableau dynamique pour les références des éléments trouvés
    TABLEAU TEXTE($TDataIndex;$Cpt_i)
    $xMemEl:=DOM Chercher element XML($xml_Tmp;"cis:indexation";$xTIndent)
     
     //Boucle traitement des indexations par rapport au nombre d'éléments
    Boucle ($j;1;$Cpt_i)
    $TDataIndex{$j}:=$xMemEl;    //Ajouts d'élement
    $xMemEl:=DOM Lire element XML frere suivant($TDataIndex{$j}) //Récupération référence suivante
    Fin de boucle 
     
      //Récupération du nombre de catégories
    $xml_Tmp:=DOM Lire element XML($TDataIndex{1};"cis:term";$i;$xTIndexC)
    //$xml_Tmp:=DOM Lire element XML($xml_Tmp;"cis:categorization";$i;$xData)
    //$Cpt_c:=DOM Compter elements XML($xml_Tmp;"cis:category")
    Fin de boucle

    En complément à mon code; Mon objectif est de récupérer toutes les informations dans le fichier XML par nombre d'éléments d'information qui m'intéressent dans le fichier exemples le cas des indexations (ces attributs, et ces éléments enfants à savoir les labels du terme demandé) catégorie, description.
    j'ai opté pour le choix d'un tableau pour stocker toutes les références des éléments "indexation", un autre pour la catégorie etc , pour pouvoir par la suite traiter le contenu des éléments enfants directement grâce au références stocker dans les tableaux et sans faire de folie .
    Peut-être que je m'y prends très mal mais hésité pas à me corriger ou proposer des solutions .
    Je vous remercie d'avance à très bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    OK, je crois comprendre ce que tu cherches à faire

    Imaginons que je cherche à récupérer un tableau synchronisé des ID et des Labels de chaque catégorie présente dans le document. Voici comment je procèderais :

    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
    C_TEXTE($1;$2)  // on ne se sert que du paramètre 2
    C_TEXTE($idCategory;$label)
     
    TABLEAU TEXTE($tt_idCateg;0)  //Tableau des ID de catégories
    TABLEAU TEXTE($tt_labelCateg;0)  //Tableau des labels de catégories
     
    TABLEAU TEXTE($tt_RefIndexations;0)
    DOM Chercher element XML($2;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$tt_RefIndexations)
     
    Boucle ($i;1;Taille tableau($tt_RefIndexations))
     
    TABLEAU TEXTE($tt_RefCategory;0)
    DOM Chercher element XML($tt_RefIndexations{$i};"/cis:indexation/cis:categorization/cis:category";$tt_RefCategory)
     
    Boucle ($j;1;Taille tableau($tt_RefCategory))
    DOM LIRE ATTRIBUT XML PAR NOM($tt_RefCategory{$j};"idcategory";$idCategory)
    AJOUTER A TABLEAU($tt_idCateg;$idCategory)
    DOM Lire element XML($tt_RefCategory{$j};"cis:label";1;$label)
    AJOUTER A TABLEAU($tt_labelCateg;$label)
    Fin de boucle 
     
    Fin de boucle
    Comme je connais la structure du fichier je gère tous les éléments fixes dans le xpath et je ne m'occupe que des éléments variables dans mes boucles qui sont "cis:indexation" et "cis:category".

    Une fois arrivé à l'élément souhaité je peux récupérer au choix un attribut, une valeur, etc...

    J'utilise Ajouter a tableau pour ne pas me préoccuper à l'avance du nombre de résultats escompté. Il est important de simultanément "Ajouter à tableau" sur les deux tableaux si on veut rester synchronisé. (On aurait pu utiliser un tableau à deux dimensions pour le même résultat).

    En fonction de tes besoins tu pourras t'inspirer de ce code pour récupérer ce qui t'intéresse.

  5. #5
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjour
    Merci de ta réponse @jmbiraghi,, j'ai réussi à adapter ton code pour récupérer ceux dont j'avais besoin je te poste le résultat et je suis toujours partant pour vos remarque et suggestion même-si le code fonctionne.
    je te remercie de m'avoir éclairé et aidé
    cordialement Alexander

    Code 4D : 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
     
     
    C_TEXTE($1)  //Variable paramètre qui contient la référence du document XML
     
      //Déclaration des variables 
    C_TEXTE($idCategorie;$label;$idCismef;$origine)  //Variable catégorie
    C_TEXTE($idTerme;$iTerm;$idcismefIndex;$labelIndex)  //variable indexation
     
      //Les tableaux des informations categorie
    TABLEAU TEXTE($t_Categorie;0)  //tableau idCategorie
    TABLEAU TEXTE($t_LabelCateg;0)  //tableau des label categorie  
    TABLEAU TEXTE($t_idCismef;0)  //Tableau des idCismef
    TABLEAU TEXTE($t_Origine;0)  //Tableau des Origine
     
      //les tableaux des informations d'indexation 
      //TABLEAU TEXTE($t_TermeIndex;0)             //tableau terme des indexations
    TABLEAU TEXTE($t_idCismefIndex;0)  //tableau des id cismef indexations
    TABLEAU TEXTE($t_idTermeIndex;0)  //tableau des id termes indexations
    TABLEAU TEXTE($t_iTermIndex;0)  //tableau des id term indexations
    TABLEAU TEXTE($t_LabelIndex;0)  //tableau des label indexations  
     
    TABLEAU TEXTE($t_RefIndex;0)  //Tableau de réferences
     
    DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($i;1;Taille tableau($t_RefIndex))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idcismef";$idcismefIndex)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idterm";$idTerme)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"ter";$iTerm)
    AJOUTER A TABLEAU($t_idCismefIndex;$idcismefIndex)
    AJOUTER A TABLEAU($t_idTermeIndex;$idTerme)
    AJOUTER A TABLEAU($t_iTermIndex;$iTerm)
     
    TABLEAU TEXTE($t_RefCategorie;0)
    DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:categorization/cis:category";$t_RefCategorie)
     
      //Lecture des information catégorie
    Boucle ($j;1;Taille tableau($t_RefCategorie))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcategory";$idCategorie)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcismef";$idCismef)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"origin";$origine)
     
      //Ajout des Element dans les tableaux
    AJOUTER A TABLEAU($t_Categorie;$idCategorie)
    AJOUTER A TABLEAU($t_idCismef;$idCismef)
    AJOUTER A TABLEAU($t_Origine;$origine)
     
      //Lecture des label des categories
    DOM Lire element XML($t_RefCategorie{$j};"cis:label";1;$label)
    AJOUTER A TABLEAU($t_LabelCateg;$label)
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($t_RefIndex)  //reset de la variable
     
      //Récupération des labels indexation
    DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($k;1;Taille tableau($t_RefIndex)
    TABLEAU TEXTE($t_Reflabel;0)
    DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation/cis:term";$t_Reflabel)
    Boucle ($l;1;Taille tableau($t_Reflabel))
    DOM Lire element XML($t_Reflabel{$l};"cis:label";1;$labelIndex)
    AJOUTER A TABLEAU($t_LabelIndex;$labelIndex)
    Fin de boucle 
    Fin de boucle 
     
      //Affichage des informations dans les colonnes
     
      //Afficahge des colonne Termes d'indexation (les labels)
    TABLEAU TEXTE(C_LabelIndex;Taille tableau($t_LabelIndex))
    Boucle ($i;1;Taille tableau($t_LabelIndex))
    C_LabelIndex{$i}:=$t_LabelIndex{$i}
    Fin de boucle 
     
      //Affichage des colonnes  ID Cismef d'indexation
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_idCismefIndex;Taille tableau($t_idCismefIndex))
    Boucle ($i;1;Taille tableau($t_idCismefIndex))
    C_idCismefIndex{$i}:=$t_idCismefIndex{$i}
    Fin de boucle 
     
      //Affichage des colonnes des termes d'indexations
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_IdTerme_Index;Taille tableau($t_idTermeIndex))
    Boucle ($i;1;Taille tableau($t_idTermeIndex))
    C_IdTerme_Index{$i}:=$t_idTermeIndex{$i}
    Fin de boucle 
     
      //Affichage des colonnes Tern d'indexation 
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_Tern;Taille tableau($t_iTermIndex))
    Boucle ($i;1;Taille tableau($t_iTermIndex))
    C_Tern{$i}:=$t_iTermIndex{$i}
    Fin de boucle 
     
      //Affichage des colonnes Catégorie
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_Categorie;Taille tableau($t_LabelCateg))
    Boucle ($i;1;Taille tableau($t_LabelCateg))
    C_Categorie{$i}:=$t_LabelCateg{$i}
    Fin de boucle 
     
      //Affichage des colonnes des ID Catégorie 
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_IdCategorie;Taille tableau($t_Categorie))
    Boucle ($i;1;Taille tableau($t_Categorie))
    C_IdCategorie{$i}:=$t_Categorie{$i}
    Fin de boucle 
     
      //Affichage des colonnes des ID Cismef Catégorie
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_idCismef_Catego;Taille tableau($t_idCismef))
    Boucle ($i;1;Taille tableau($t_idCismef))
    C_idCismef_Catego{$i}:=$t_idCismef{$i}
    Fin de boucle 
     
      //Affichage des colonnes Origine
    EFFACER VARIABLE($i)
    TABLEAU TEXTE(C_Origine;Taille tableau($t_Origine))
    Boucle ($i;1;Taille tableau($t_Origine))
    C_Origine{$i}:=$t_Origine{$i}
    Fin de boucle
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    Très bien Alexander

    A partir de la ligne 69 tu peux avantageusement utiliser COPIER TABLEAU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TABLEAU TEXTE(C_LabelIndex;0)//Utile pour le compilateur
    COPIER TABLEAU($t_LabelIndex;C_LabelIndex)
    (A noter que tu aurais pu directement remplir tes tableaux process (ou interprocess) dans la boucle de parsing XML sans passer par un tableau local intermédiaire)

    Si tu vérifies la syntaxe avec le compilateur tu verras qu'il te manque quelques parenthèses

    Et puis mea culpa, les commandes DOM Lire element XML et DOM Chercher element XML sont des fonctions et donc il faut définir un résultat. Ca n'a pas eu d'incidence sur ton code, mais pour compiler ce sera nécessaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $RefEnfant:=DOM Lire element XML($t_RefCategorie{$j};"cis:label";1;$label)
     
    $Resultat:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Jean-Michel

  7. #7
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjour,
    j'ai effectué les correctifs qui sont les suivant
    Code 4D : 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
     
    TABLEAU TEXTE($t_RefIndex;0)  //Tableau de réferences
     
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($i;1;Taille tableau($t_RefIndex))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idcismef";$idcismefIndex)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idterm";$idTerme)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"ter";$iTerm)
    AJOUTER A TABLEAU($t_idCismefIndex;$idcismefIndex)
    AJOUTER A TABLEAU($t_idTermeIndex;$idTerme)
    AJOUTER A TABLEAU($t_iTermIndex;$iTerm)
     
    TABLEAU TEXTE($t_RefCategorie;0)
    $Out:=DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:categorization/cis:category";$t_RefCategorie)
     
      //Lecture des information catégorie
    Boucle ($j;1;Taille tableau($t_RefCategorie))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcategory";$idCategorie)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcismef";$idCismef)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"origin";$origine)
     
      //Ajout des Element dans les tableaux
    AJOUTER A TABLEAU($t_Categorie;$idCategorie)
    AJOUTER A TABLEAU($t_idCismef;$idCismef)
    AJOUTER A TABLEAU($t_Origine;$origine)
     
      //Lecture des label des categories
    $Out:=DOM Lire element XML($t_RefCategorie{$j};"cis:label";1;$label)
    AJOUTER A TABLEAU($t_LabelCateg;$label)
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($t_RefIndex)  //reset de la variable
     
      //Récupération des labels indexation
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($k;1;Taille tableau($t_RefIndex))
    TABLEAU TEXTE($t_Reflabel;0)
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation/cis:term";$t_Reflabel)
    Boucle ($l;1;Taille tableau($t_Reflabel))
    $Out:=DOM Lire element XML($t_Reflabel{$l};"cis:label";1;$labelIndex)
    AJOUTER A TABLEAU($t_LabelIndex;$labelIndex)
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($Out)  //Effacement de la variable 
     
      //Affichage des informations dans les colonnes
      //Affichage des labels de termes 
    COPIER TABLEAU($t_LabelIndex;C_LabelIndex)
     
      //Affichage des colonnes  ID Cismef d'indexation
    COPIER TABLEAU($t_idCismefIndex;C_idCismefIndex)
     
      //Affichage des colonnes des termes d'indexations
    COPIER TABLEAU($t_idTermeIndex;C_IdTerme_Index)
     
      //Affichage des colonnes Tern d'indexation 
    COPIER TABLEAU($t_idTermeIndex;C_Tern)
     
      //Affichage des colonnes Catégorie
    COPIER TABLEAU($t_LabelCateg;C_Categorie)
     
      //Affichage des colonnes des ID Catégorie 
    COPIER TABLEAU($t_Categorie;C_IdCategorie)
     
      //Affichage des colonnes des ID Cismef Catégorie
    COPIER TABLEAU($t_idCismef;C_idCismef_Catego)
     
      //Affichage des colonnes Origine
    COPIER TABLEAU($t_Origine;C_Origine)

    Cependant mise à par l'information de retours des fonctions contenue dans la variable "$Out" je ne vois pas l'utilité de celle -ci, si ce n'est pour faire un contrôle si tout s'est bien passé.
    Pourrai-je par exemple avant ma sortie dans la fonction d'analyse du fichier XML effacer celle-ci ? en même temps je dis ça mais je ne sais pas comment 4D utilise la mémoire pour c'est variable ou s'il la libère vraiment avec la commande "EFFACER VARIABLE" , je doute peut-être qu'il ne fais que réinitialisé la variable en la mettant à nul où libère la mémoire allouer par celle-ci quant l'application se termine mais bon c'est juste une idée alors si y a des détails là-dessus je suis preneur

    Cordialement Alexander
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    Les deux variables retournées par les fonctions ont chacune leur utilité mais il se trouve que dans ton cas ce n'est pas utile.

    DOM Chercher element XML retourne le résultat de la recherche dans cette variable lorsqu'on n'utilise pas de tableau comme toi (càd lorsqu'on est sûr qu'il n'y a qu'une réponse, ou seulement la première intéressante)

    DOM Lire element XML retourne une référence vers l'élément enfant du noeud ce qui est utile si on veut continuer à descendre dans l'arbre. Encore une fois ce n'est pas ton cas.

    En tout cas non, ce n'est pas une variable de contrôle.

    De toutes façons tu n'as pas à t'inquiéter pour l'occupation mémoire de cette variable. Comme toute variable locale, elle sera supprimée dès la fin de l'exécution de la méthode (soit en ligne 72). Tu n'as même pas besoin de faire EFFACER VARIABLE, ni entre les différents usage de ces fonctions, ni en ligne 46.

  9. #9
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjour
    Merci pour tes précisions @jmbiraghi.
    Cependant je viens juste de remarquer que j'ai fait une erreur de logique de programmations enfin si en peut appeler ça comme ça; à la ligne 35 mes instructions qui récupère les labels d'indexation, ne font qu'ajouter dans mon tableau autant de fois qu'il y a de label que le premier label d'indexation et rien d'autre ce qui fausse un peut la lecture des informations .
    j'ai effectué les corrections nécessaires et j'aimerais avoirs votre avis

    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
    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
     
      //Fonction qui permet d'extraire dynamiquement les informations du fichier XML
      //selon le terme recherché, il ne prend qu'un seul paramètre la référence du document XML 
     
    C_TEXTE($1)  //Variable paramètre qui contient la référence du document XML
     
      //Déclaration des variables 
    C_TEXTE($idCategorie;$label;$idCismef;$origine)  //Variable catégorie
    C_TEXTE($idTerme;$iTerm;$idcismefIndex;$labelIndex)  //variable indexation
     
      //Les tableaux des informations categorie
    TABLEAU TEXTE($t_Categorie;0)  //tableau idCategorie
    TABLEAU TEXTE($t_LabelCateg;0)  //tableau des label categorie  
    TABLEAU TEXTE($t_idCismef;0)  //Tableau des idCismef
    TABLEAU TEXTE($t_Origine;0)  //Tableau des Origine
     
      //les tableaux des informations d'indexation 
      //TABLEAU TEXTE($t_TermeIndex;0)             //tableau terme des indexations
    TABLEAU TEXTE($t_idCismefIndex;0)  //tableau des id cismef indexations
    TABLEAU TEXTE($t_idTermeIndex;0)  //tableau des id termes indexations
    TABLEAU TEXTE($t_iTermIndex;0)  //tableau des id term indexations
    TABLEAU TEXTE($t_LabelIndex;0)  //tableau des label indexations  
     
    TABLEAU TEXTE($t_RefIndex;0)  //Tableau de réferences
    TABLEAU TEXTE($t_Reflabel;0)  //Tableau de référence label indexation
    TABLEAU TEXTE($t_RefCategorie;0)  //Tableau de référence catégorie
     
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($i;1;Taille tableau($t_RefIndex))
    ////Récupération des attributs d'indexation
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idcismef";$idcismefIndex)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idterm";$idTerme)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"ter";$iTerm)
    AJOUTER A TABLEAU($t_idCismefIndex;$idcismefIndex)
    AJOUTER A TABLEAU($t_idTermeIndex;$idTerme)
    AJOUTER A TABLEAU($t_iTermIndex;$iTerm)
     
    //Récupération des labels indexation
    $Out:=DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:term";$t_Reflabel)
    Boucle ($l;1;Taille tableau($t_Reflabel))
    $Out:=DOM Lire element XML($t_Reflabel{$l};"cis:label";1;$labelIndex)
    AJOUTER A TABLEAU($t_LabelIndex;$labelIndex)
    Fin de boucle 
     
    //Récupération des labels catégorie et ses attributs
    $Out:=DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:categorization/cis:category";$t_RefCategorie)
    Boucle ($j;1;Taille tableau($t_RefCategorie))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcategory";$idCategorie)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcismef";$idCismef)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"origin";$origine)
     
      //Ajout des Element dans les tableaux
    AJOUTER A TABLEAU($t_Categorie;$idCategorie)
    AJOUTER A TABLEAU($t_idCismef;$idCismef)
    AJOUTER A TABLEAU($t_Origine;$origine)
     
      //Lecture des label des categories
    $Out:=DOM Lire element XML($t_RefCategorie{$j};"cis:label";1;$label)
    AJOUTER A TABLEAU($t_LabelCateg;$label)
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($t_RefIndex)  //reset de la variable
    EFFACER VARIABLE($Out)  //Effacement de la variable 
     
      //Affichage des informations dans les colonnes
     
      //Affichage des labels de termes 
    COPIER TABLEAU($t_LabelIndex;C_LabelIndex)
     
      //Affichage des colonnes  ID Cismef d'indexation
    COPIER TABLEAU($t_idCismefIndex;C_idCismefIndex)
     
      //Affichage des colonnes des termes d'indexations
    COPIER TABLEAU($t_idTermeIndex;C_IdTerme_Index)
     
      //Affichage des colonnes Tern d'indexation 
    COPIER TABLEAU($t_idTermeIndex;C_Tern)
     
      //Affichage des colonnes Catégorie
    COPIER TABLEAU($t_LabelCateg;C_Categorie)
     
      //Affichage des colonnes des ID Catégorie 
    COPIER TABLEAU($t_Categorie;C_IdCategorie)
     
      //Affichage des colonnes des ID Cismef Catégorie
    COPIER TABLEAU($t_idCismef;C_idCismef_Catego)
     
      //Affichage des colonnes Origine
    COPIER TABLEAU($t_Origine;C_Origine)
    Cordialement Alexander
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    RAS. Je ne vois pas de problème dans ton code.

    Les lignes 63 et 64 sont superflues comme dit hier

  11. #11
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjour, @jmbiraghi dans mon ancien code il y avait une petite erreur subtile de logique de programmations, au lieu de prendre les différents types de label associer à des catégories différentes, j'inscrivais dans le tableaux juste le premier terme pour tous les différents types de termes existants.
    voici l'ancien code
    Code 4D : 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
     
     
    TABLEAU TEXTE($t_RefIndex;0)  //Tableau de réferences
     
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($i;1;Taille tableau($t_RefIndex))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idcismef";$idcismefIndex)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idterm";$idTerme)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"ter";$iTerm)
    AJOUTER A TABLEAU($t_idCismefIndex;$idcismefIndex)
    AJOUTER A TABLEAU($t_idTermeIndex;$idTerme)
    AJOUTER A TABLEAU($t_iTermIndex;$iTerm)
     
    TABLEAU TEXTE($t_RefCategorie;0)
    $Out:=DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:categorization/cis:category";$t_RefCategorie)
     
      //Lecture des information catégorie
    Boucle ($j;1;Taille tableau($t_RefCategorie))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcategory";$idCategorie)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcismef";$idCismef)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"origin";$origine)
     
      //Ajout des Element dans les tableaux
    AJOUTER A TABLEAU($t_Categorie;$idCategorie)
    AJOUTER A TABLEAU($t_idCismef;$idCismef)
    AJOUTER A TABLEAU($t_Origine;$origine)
     
      //Lecture des label des categories
    $Out:=DOM Lire element XML($t_RefCategorie{$j};"cis:label";1;$label)
    AJOUTER A TABLEAU($t_LabelCateg;$label)
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($t_RefIndex)  //reset de la variable
     
      //Récupération des labels indexation
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($k;1;Taille tableau($t_RefIndex))
    TABLEAU TEXTE($t_Reflabel;0)
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation/cis:term";$t_Reflabel)
    Boucle ($l;1;Taille tableau($t_Reflabel))
    $Out:=DOM Lire element XML($t_Reflabel{$l};"cis:label";1;$labelIndex)
    AJOUTER A TABLEAU($t_LabelIndex;$labelIndex)
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($Out)  //Effacement de la variable 
     
      //Affichage des informations dans les colonnes
      //Affichage des labels de termes 
    COPIER TABLEAU($t_LabelIndex;C_LabelIndex)
     
      //Affichage des colonnes  ID Cismef d'indexation
    COPIER TABLEAU($t_idCismefIndex;C_idCismefIndex)
     
      //Affichage des colonnes des termes d'indexations
    COPIER TABLEAU($t_idTermeIndex;C_IdTerme_Index)
     
      //Affichage des colonnes Tern d'indexation 
    COPIER TABLEAU($t_idTermeIndex;C_Tern)
     
      //Affichage des colonnes Catégorie
    COPIER TABLEAU($t_LabelCateg;C_Categorie)
     
      //Affichage des colonnes des ID Catégorie 
    COPIER TABLEAU($t_Categorie;C_IdCategorie)
     
      //Affichage des colonnes des ID Cismef Catégorie
    COPIER TABLEAU($t_idCismef;C_idCismef_Catego)
     
      //Affichage des colonnes Origine
    COPIER TABLEAU($t_Origine;C_Origine)

    La correction

    Code 4D : 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
     
      //Fonction qui permet d'extraire dynamiquement les informations du fichier XML
      //selon le terme recherché, il ne prend qu'un seul paramètre la référence du document XML 
     
    C_TEXTE($1)  //Variable paramètre qui contient la référence du document XML
     
      //Déclaration des variables 
    C_TEXTE($idCategorie;$label;$idCismef;$origine)  //Variable catégorie
    C_TEXTE($idTerme;$iTerm;$idcismefIndex;$labelIndex)  //variable indexation
     
      //Les tableaux des informations categorie
    TABLEAU TEXTE($t_Categorie;0)  //tableau idCategorie
    TABLEAU TEXTE($t_LabelCateg;0)  //tableau des label categorie  
    TABLEAU TEXTE($t_idCismef;0)  //Tableau des idCismef
    TABLEAU TEXTE($t_Origine;0)  //Tableau des Origine
     
      //les tableaux des informations d'indexation 
      //TABLEAU TEXTE($t_TermeIndex;0)             //tableau terme des indexations
    TABLEAU TEXTE($t_idCismefIndex;0)  //tableau des id cismef indexations
    TABLEAU TEXTE($t_idTermeIndex;0)  //tableau des id termes indexations
    TABLEAU TEXTE($t_iTermIndex;0)  //tableau des id term indexations
    TABLEAU TEXTE($t_LabelIndex;0)  //tableau des label indexations  
     
    TABLEAU TEXTE($t_RefIndex;0)  //Tableau de réferences
    TABLEAU TEXTE($t_Reflabel;0)  //Tableau de référence label indexation
    TABLEAU TEXTE($t_RefCategorie;0)  //Tableau de référence catégorie
    TABLEAU TEXTE($t_RefLabelCatego;0)  //Tableau de référence label catégorie
     
     
    $Out:=DOM Chercher element XML($1;"/cis:sentences/cis:sentence/cis:indexations/cis:indexation";$t_RefIndex)
    Boucle ($i;1;Taille tableau($t_RefIndex))
      ////Récupération des attributs d'indexation
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idcismef";$idcismefIndex)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"idterm";$idTerme)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefIndex{$i};"ter";$iTerm)
    AJOUTER A TABLEAU($t_idCismefIndex;$idcismefIndex)
    AJOUTER A TABLEAU($t_idTermeIndex;$idTerme)
    AJOUTER A TABLEAU($t_iTermIndex;$iTerm)
     
      //Récupération des labels indexation
    $Out:=DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:term";$t_Reflabel)
    Boucle ($l;1;Taille tableau($t_Reflabel))
    $Out:=DOM Lire element XML($t_Reflabel{$l};"cis:label";1;$labelIndex)
    AJOUTER A TABLEAU($t_LabelIndex;$labelIndex)
    Fin de boucle 
     
      //Récupération des labels catégorie et ses attributs
    $Out:=DOM Chercher element XML($t_RefIndex{$i};"/cis:indexation/cis:categorization/cis:category";$t_RefCategorie)
    Boucle ($j;1;Taille tableau($t_RefCategorie))
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcategory";$idCategorie)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"idcismef";$idCismef)
    DOM LIRE ATTRIBUT XML PAR NOM($t_RefCategorie{$j};"origin";$origine)
     
      //Ajout des Element dans les tableaux
    AJOUTER A TABLEAU($t_Categorie;$idCategorie)
    AJOUTER A TABLEAU($t_idCismef;$idCismef)
    AJOUTER A TABLEAU($t_Origine;$origine)
     
      //Lecture des label des categories
      //$Out:=DOM Chercher element XML($t_RefCategorie{$j};"/cis:categorization/cis:category";$t_RefLabelCatego)
    $Out:=DOM Lire element XML($t_RefCategorie{$j};"cis:label";1;$label)
    AJOUTER A TABLEAU($t_LabelCateg;$label)
     
    Fin de boucle 
    Fin de boucle 
     
    EFFACER VARIABLE($t_RefIndex)  //reset de la variable
    EFFACER VARIABLE($Out)  //Effacement de la variable 
     
      //Affichage des informations dans les colonnes
     
      //Affichage des labels de termes 
    COPIER TABLEAU($t_LabelIndex;C_LabelIndex)
     
      //Affichage des colonnes  ID Cismef d'indexation
    COPIER TABLEAU($t_idCismefIndex;C_idCismefIndex)
     
      //Affichage des colonnes des termes d'indexations
    COPIER TABLEAU($t_idTermeIndex;C_IdTerme_Index)
     
      //Affichage des colonnes Tern d'indexation 
    COPIER TABLEAU($t_idTermeIndex;C_Tern)
     
      //Affichage des colonnes Catégorie
    COPIER TABLEAU($t_LabelCateg;C_Categorie)
     
      //Affichage des colonnes des ID Catégorie 
    COPIER TABLEAU($t_Categorie;C_IdCategorie)
     
      //Affichage des colonnes des ID Cismef Catégorie
    COPIER TABLEAU($t_idCismef;C_idCismef_Catego)
     
      //Affichage des colonnes Origine
    COPIER TABLEAU($t_Origine;C_Origine)

    Cependant il persiste encore des erreurs dans mon programme, que je t'en ferais part en privé si tu me le permets
    Cordialement Alexander
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  12. #12
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut [débutant 4D v13] Parcours de fichier XML pour récupérer les informations
    Bonjours merci à tous ceux qui m'ont aidé à bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

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

Discussions similaires

  1. fichier .xml pour remplacer les My.setting
    Par gastoncs dans le forum VB.NET
    Réponses: 6
    Dernier message: 01/06/2015, 09h08
  2. [WD17] Parcourir un fichier XML et récupérer les informations
    Par Rayanouuu dans le forum WinDev
    Réponses: 1
    Dernier message: 29/04/2014, 12h38
  3. Lire un fichier XML et récupérer les valeurs d'attribut
    Par dinaing dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 18/06/2010, 15h53
  4. parcourir un fichier XML pour recuperer des information
    Par samerkouta dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 05/10/2009, 11h02
  5. [MySQL] Requête pour récupérer les informations d'un membre
    Par webamies dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 09/05/2009, 20h10

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