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

WinDev Discussion :

Parcours d'un fichier XML [WD18]


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut Parcours d'un fichier XML
    Bonjour à tous,

    Etant novice dans le domaine windev je suis confronté à un soucis depuis pas mal de temps sans trouvé une réponse sur le site officiel / l'aide ou la recherche google.

    Voici mon code xml tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="ISO-8859-1"?>
    -<zylab>-<document name="Proforma_20111130152636.pdf" version="1.1">-
       <fields>
         <field id="Date_doc">20111130</field>
         <field id="Fournisseur">Kermene</field>
         <field id="Type_doc">Prefacture Aladin</field>
         <field id="Num_prefacture">F122121</field>
         <field id="Num_bon">BL123456</field>
         <field id="Rayon">Boucherie</field>
         <field id="Num_bon_retour">BR126398</field>
       </fields>
    </document></zylab>
    Et voici comment je souhaite parcourir les champs fields et afficher la valeur du champ qui à pour id Fournisseur :

    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
    // Initialisation de la variable XMLDoc qui contiendra le contenu xml du fichier d'exempleXML.xml
    XMLDoc est un xmlDocument, description = "exempleXML"
    // Chargement du fichier exempleXML dans XMLDoc
    XMLDoc = XMLOuvre(ComplèteRep(fRepExe())+"C:\Mes Projets\testFichierXml\Exe\exempleXML.")
    // Affichage du numéro de version xml du fichier courant
    paramsGeneraux est un xmlNoeud
    paramsGeneraux = XMLDoc.zylab.document.fields
     
    POUR TOUT unField DE paramsGeneraux
    	Info("Vous êtes rentré dans la boucle !")
    	SELON unField:id
    		CASE "Fournisseur"
    			Info(unField:id..Valeur)
    		AUTRE CAS
    			Info("Aucun champ de contient le nom du fournisseur")	
    	FIN
    FIN
    Le problème vien très certainement de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    paramsGeneraux = XMLDoc.zylab.document.fields
    Mais je ne vois pas^^

    Impossible de rentrer dans mon POUR ( vu avec le débogueur ) et je ne comprend pas mon erreur.
    Je dois sûrement faire une erreur bête mais je tourne en rond.

    Merci d'avance pour votre aide.

    Cordialement,
    Blooster.

  2. #2
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    POUR TOUT field DE XMLDoc.zylab.document.fields
    	Info("Vous êtes rentré dans la boucle !")
    	SELON field:id
    		CASE "Fournisseur"
    			Info(unField:id..Valeur)
    		AUTRE CAS
    			Info("Aucun champ de contient le nom du fournisseur")	
    	FIN
    FIN

  3. #3
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Tout d'abord merci de m'avoir répondu rapidement.

    Peux tu m'apporter des précisions sur ce que tu viens de faire, du moins sur cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POUR TOUT field DE XMLDoc.zylab.document.fields
    Car j'avais fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    paramsGeneraux est un xmlNoeud
    paramsGeneraux = XMLDoc.zylab.document.fields
     
    POUR TOUT unField DE paramsGeneraux
    Et pour moi c'est exactement la même chose sauf que je stock dans des variables et je trouve ça plus simple de compréhension à vrai dire.

    Je viens de tester ton code et je n'ai plus l'erreur mais cela ne marche toujours pas.

    Cordialement
    Blooster,

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 815
    Points
    815
    Par défaut
    Bonjour à tous,

    @Blooster

    C'est le contenu exact du fichier XML que tu as copié ?
    Parce que la deuxième ligne est anormale, vu qu'elle est encadrée de caractères "-" qui n'ont rien à faire là.
    Qu'en penses-tu ?

    Autre chose.
    Pour récupérer le nom du fournisseur (en clair, le texte du xmlNoeud field avec attribut id="Fournisseur") tu dois utiliser sa propriété Texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	SELON unField:id
    		CASE "Fournisseur"
    			Info(unField..Texte)
    		AUTRE CAS
    			Info("Aucun champ de contient le nom du fournisseur")	
    	FIN

  5. #5
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut re
    Bonjour OnePoint,

    J'ai pas été malin sur ce coup là j'aurai dû le préciser, mais le XML que j'ai link correspond au rendu graphique sur un navigateur.
    Il n'y a naturellement pas de '-' dans le fichier xml.

    Et merci pour : Comme je n'avais aucun rendu, je mettais pas rendu compte de mon erreur encore.

    Sinon aurais tu une explication à ma question sur mon poste précédent ?

    Merci tout de même de ton aide.

    Cordialement,
    Blooster

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 815
    Points
    815
    Par défaut
    Je préfère te donner un code qui fonctionne, pour que tu puisses avancer.
    J'ai testé le code ci-dessous.
    Que se passe-t-il sur ton poste ?

    Code WLangage : 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
     
    PROCEDURE Test_XML()
     
    sXML  est une chaîne = [
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <zylab>
    <document name="Proforma_20111130152636.pdf" version="1.1">
       <fields>
         <field id="Date_doc">20111130</field>
         <field id="Fournisseur">Kermene</field>
         <field id="Type_doc">Prefacture Aladin</field>
         <field id="Num_prefacture">F122121</field>
         <field id="Num_bon">BL123456</field>
         <field id="Rayon">Boucherie</field>
         <field id="Num_bon_retour">BR126398</field>
       </fields>
    </document>
    </zylab>
    ]
    // Initialisation de la variable XMLDoc qui contiendra le contenu xml du fichier d'exempleXML.xml
    XMLDoc est un xmlDocument	//, description = "exempleXML"
     
    // Chargement du fichier exempleXML dans XMLDoc
    XMLDoc=XMLOuvre(sXML,depuisChaîne)
    //XMLDoc = XMLOuvre(ComplèteRep(fRepExe())+"C:\Mes Projets\testFichierXml\Exe\exempleXML.")
     
    // Affichage du numéro de version xml du fichier courant
    paramsGeneraux est un xmlNoeud
    paramsGeneraux = XMLDoc.zylab.document.fields
     
    POUR TOUT unField DE paramsGeneraux
    	Info("Vous êtes rentré dans la boucle !")
     
    	SELON unField:id
    		CAS "Fournisseur"
    			TitreSuivant("Fournisseur")
    			Info(unField..Texte)
    		AUTRE CAS
    			TitreSuivant("Autre champ")
    			Info(unField:id..Valeur)	
    	FIN
    FIN

  7. #7
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Oui j'ai très bien compris le principe.

    Mais le problème c'est que je met au moins un système qui convertit les pdfs en texte pour pouvoir les traduire en XML enfin bref, je veux juste faire un test de parcours pour un fichier donné pour me mettre à l'aise avec les propriétés xml de windev que je ne connais pas.

    Par conséquent le fichier xml est contenu dans le projet, et donc j'aimerais le parcourir.

    C'est peut-être super simple mais ça me rend fou^^

    je vais essayé tout de même ce code sur mon poste je tiens au courant ( en éditant )

    ça marche bien ce que tu m'as donné, mais comme je t'ai dis je souhaiterai faire ça à partir d'un fichier importé pour mes tests.

    Cordialement
    Blooster

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 815
    Points
    815
    Par défaut
    Citation Envoyé par Blooster Voir le message
    je veux juste faire un test de parcours pour un fichier donné pour me mettre à l'aise avec les propriétés xml de windev que je ne connais pas.

    Par conséquent le fichier xml est contenu dans le projet, et donc j'aimerais le parcourir.
    [...]
    ça marche bien ce que tu m'as donné, mais comme je t'ai dis je souhaiterai faire ça à partir d'un fichier importé pour mes tests.
    Mon intention était de partir d'un code qui fonctionne pour que tu le modifies pas à pas jusqu'à atteindre ton but.

    Donc puisque ça fonctionne, hé bien maintenant tu reprends ton XMLOuvre() sur le fichier importé et tu testes à nouveau.


  9. #9
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Le problème c'est que en modifiant tout j'obtiens exactement le même code que je t'ai montré avant.

    J'obtiens ça :
    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
    PROCEDURE Test_XML()
     
     
    // Initialisation de la variable XMLDoc qui contiendra le contenu xml du fichier d'exempleXML.xml
    XMLDoc est un xmlDocument, description = "exempleXML"
     
    // Chargement du fichier exempleXML dans XMLDoc
    XMLDoc = XMLOuvre(ComplèteRep(fRepExe())+"C:\Mes Projets\testFichierXml\Exe\exempleXML.")
     
    // Affichage du numéro de version xml du fichier courant
    paramsGeneraux est un xmlNoeud
    paramsGeneraux = XMLDoc.zylab.document.fields
     
    POUR TOUT unField DE paramsGeneraux
    	Info("Vous êtes rentré dans la boucle !")
     
    	SELON unField:id
    		CAS "Fournisseur"
    			TitreSuivant("Fournisseur")
    			Info(unField..Texte)
    		AUTRE CAS
    			TitreSuivant("Autre champ")
    			Info(unField:id..Valeur)	
    	FIN
    FIN
    Je n'ai aucune erreur mais je ne rentre toujours pas dans le POUR TOUT.
    Pourtant j'ai essayé de faire un :
    Et ça marche, donc c'est que j'ai bien accès à mon fichier.

    Décidément, je crois que je vais finir par me lancé directement dans la création du fichier xml que je veux xD

    Merci en tout cas OnePoint

  10. #10
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour,

    Je pense que ton problème viens de là

    XMLOuvre(ComplèteRep(fRepExe())+"C:\Mes Projets\testFichierXml\Exe\exempleXML.")
    Ton chemin d'accès n'est pas correcte.

    rajoute ceci après XMLOuvre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI ErreurDétectée = Vrai ALORS
            Erreur("Impossible d'ouvrir le fichier" ,erreurinfo())
    FIN

  11. #11
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Merci mail.Spam,

    J'ai ajouté ce bout de code que tu m'as donné.
    Je ne rentre pas dedans ce qui fais qu'il arrive à charger mon fichier.

  12. #12
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Il arrive à te charger un fichier dont le chemin est
    ComplèteRep(fRepExe())+"C:\Mes Projets\testFichierXml\Exe\exempleXML.".
    Avec le point à la fin et fRepExe())+"C:\.

    Met le chemin de ton fichier XML dans une variable chaine et regarde la valeur de ta variable.

  13. #13
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Je viens de test donc en mettant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    gsCheminXML est une chaîne = "C:\Mes Projets\testFichierXml\Exe\exempleXML"
    // Chargement du fichier exempleXML dans XMLDoc
    XMLDoc = XMLOuvre(ComplèteRep(fRepExe())+gsCheminXML)
    SI ErreurDétectée = Vrai ALORS
    	Erreur("Impossible d'ouvrir le fichier" ,ErreurInfo())
    FIN
    Et lorsque je debug ma variable gsCheminXML contient effectivement :
    C:\Mes Projets\testFichierXml\Exe\exempleXML

    Merci de ton aide en tout cas.

  14. #14
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Je suis un peu têtu mais le problème n'est pas sur "C:\..."
    mais sur "ComplèteRep(fRepExe())+gsCheminXML"

    Met ceci dans ton code

    trace(ComplèteRep(fRepExe())+gsCheminXML)Ensuite je ne voit pas le nom de ton fichier XML (je ne voit pas l'extension .xml)

  15. #15
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Pas de soucis, je veux vraiment apprendre donc il n'y a pas de soucis t'inquiète pas.

    Je viens d'essayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    PROCEDURE Test_XML()
     
     
    // Initialisation de la variable XMLDoc qui contiendra le contenu xml du fichier d'exempleXML.xml
    XMLDoc est un xmlDocument, description = "exempleXML"
    cheminXML est une chaîne = "C:\Mes Projets\testFichierXml\Exe\exempleXML.xml"
    // Chargement du fichier exempleXML dans XMLDoc
    XMLDoc = XMLOuvre(ComplèteRep(fRepExe())+cheminXML)
    Trace(cheminXML)
    SI ErreurDétectée = Vrai ALORS
    	Erreur("Impossible d'ouvrir le fichier" ,ErreurInfo())
    FIN
     
    // Affichage du numéro de version xml du fichier courant
    paramsGeneraux est un xmlNoeud
    paramsGeneraux = XMLDoc.zylab.document.fields
     
    POUR TOUT unField DE paramsGeneraux
    	Info("Vous êtes rentré dans la boucle !")
     
    	SELON unField:id
    		CAS "Fournisseur"
    			TitreSuivant("Fournisseur")
    			Info(unField..Texte)
    		AUTRE CAS
    			TitreSuivant("Autre champ")
    			Info(unField:id..Valeur)	
    	FIN
    FIN
    Je n'ai pas pu mettre le trace comme tu me la dis tout simplement car j'ai eu une erreur me disant que je ne peux pas mettre un Trace qui ne renvoie rien..

    Et sinon même avec le trace que j'ai mis je n'ai aucune informations supplémentaire.
    Je sais que ma variable cheminXML contient le chemin c'est tout.

    Sinon je suis d'accord avec toi c'est sûrement ça l'erreur ( le chemin ).

    Merci,

  16. #16
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Allez juste pour finir.

    essai de mettre ça

    XMLDoc = XMLOuvre(cheminXML).

    Car pour moi FRepExe Renvoie le répertoire à partir duquel l'exécution est lancée
    donc en gros "C:\Windev"

    puis tu fais un complèterep donc on obtient "C:\Windev\"

    après tu rajoute le chemin "c:\etc..."
    Donc tu auras "C:\Windev\c:\etc..."

    qui n'est pas un chemin valide.

    Ensuite

  17. #17
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Oui j'ai déjà essayé plusieurs fois aussi cette syntaxe mais malheureusement je ne passe toujours pas dans le POUR TOUT.

    C'est bête quelque chose de simple qui prend tout une autre tournure ^^

    Si toi tu voulais faire un parcours comme je veux le faire pour un fichier XML quelconque tu ferais la même chose ?

    Donc la logique voudrait que je fasse quoi exactement ?

    En tout cas merci.

  18. #18
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Perso j'aime bien utiliser XMLLit()

    Ce qui donne

    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
    sXML  est une chaîne = [
    	<?xml version="1.0" encoding="ISO-8859-1"?>
    	<zylab>
    		<document name="Proforma_20111130152636.pdf" version="1.1">
    			<fields>
    				<field id="Date_doc">20111130</field>
    				<field id="Fournisseur">Kermene</field>
    				<field id="Type_doc">Prefacture Aladin</field>
    				<field id="Num_prefacture">F122121</field>
    				<field id="Num_bon">BL123456</field>
    				<field id="Rayon">Boucherie</field>
    				<field id="Num_bon_retour">BR126398</field>
    			</fields>
    		</document>
    	</zylab>
    ]
     
    XMLDocument("DOM",sXML)
     
    sNom est une chaîne
    sValeur est une chaîne
    i est un entier
     
    // 
    BOUCLE
    	i += 1
    	sNom    = XMLLit("DOM","/zylab/document/fields/field["+i+"]/@id")
    	sValeur = XMLLit("DOM","/zylab/document/fields/field["+i+"]") 
    	SI sNom = "" ALORS
    		SORTIR
    	FIN
    	Info("Nom    = "+sNom + RC + "Valeur = " + sValeur)
    FIN
     
    // pour une recherche directe par exemple de la valeur du fournisseur
    Info(XMLLit("DOM","/zylab/document/fields/field[@id='Fournisseur']"))
     
    // idem pour le Rayon du 1ère fields (pour le cas ou il y en aurait plusieurs voir la boucle ci-dessus)
    Info(XMLLit("DOM","/zylab/document/fields[1]/field[@id='Rayon']"))

  19. #19
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Perso je préfère les requêtes XPath pour le parcours d'un fichier XML.
    voir cette exemple

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

Discussions similaires

  1. [WD10] Parcours d'un fichier XML
    Par nuFox dans le forum WinDev
    Réponses: 2
    Dernier message: 13/04/2009, 11h40
  2. [XSLT] parcours d'un fichier XML
    Par kakid dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/05/2008, 18h14
  3. Parcours d'un fichier XML
    Par Amiba dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/09/2007, 14h31
  4. [DOM] Besoin d'optimiser le parcours d'un fichier XML
    Par stardeus dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 08/04/2007, 17h04

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