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 :

XML et Windev 22 [WD22]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut XML et Windev 22
    Bonjour à tous,

    Voilà je dois soutenir un logiciel qui prend un fichier xml et le format pour donner un fichier pdf plus lisible.
    Je suis développeur Java de base et débutante. Je n’ai que la formation initiation à Windev.
    Je me heurte à un problème, j’ai plusieurs balises qui ont le même nom, j’arrive à récupérer la première mais je n’arrive pas à récupérer celles d’après. J’ai besoin pour certaines de soit récupérer la 2ème par exemple et pour d’autres de toutes les récupérer. Est ce qu’il y a une méthode du genre suivant ou faut-il faire une boucle ?

    Le style de balise :

    <exemple1>
    <balise à récupérer> <\balise à récupérer>
    <\exemple1>
    <exemple2>
    <balise à récupérer> <\balise à récupérer>
    <\exemple2>

    Merci d’avance de votre aide.

  2. #2
    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,
    Peux tu nous donner un peu le code que tu as fait ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de ton intérêt.

    Personnellement je n’ai rien fais encore.
    Alors je crois que c’est à ce moment du code que l’on récupère les données mais je n’en suis pas très sure.
    Mais à partir de la comment faire pour passer à la même balise mais suivante ?

    SI XMLRecherche(‘XML’, ‘baliseRecherchee’, XMLBalise + XMLNiveauCourant + XMLSousElement)
    recupDonnees = recupDonnees +XMLElement(‘XML’) + ‘=‘ + XMLDonnee(‘XML’)

    Sachant queXML contient le fichier xml.

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 351
    Points : 9 507
    Points
    9 507
    Par défaut
    Bonjour et bienvenue à toi,

    Windev, ça change grandement de Java.

    Tu peux te pencher sur l'autoformation pour appréhender les concepts.

    Tu as dans Windev, une aide qui n'est pas mal du tout (je trouve). N'hésite pas à l'utiliser : Il y a souvent des exemples, basiques certes, mais significatifs.

    Dans l'exemple de l'aide sur XMLRecherche, tu as un parcours des balises : https://doc.pcsoft.fr/fr-FR/?3081025

    N'hésite pas à revenir vers nous si tu veux des explications supplémentaires.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour et merci.

    Merci pour ton aide.🙂

    Je me dis que la fonction XMLSuivant ressemble bien à ce que je voudrai mais par exemple si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI XMLRecherche(‘XML’, ‘baliseRecherchee’, XMLBalise + XMLNiveauCourant + XMLSousElement) ALORS
        recupDonnee = XMLDonnee(‘XML’)
        XMLSuivant(‘XML’)
        recupDonnee2 = XMLDonnee(‘XML’)
    FIN
    Ma case a toujours la valeur de la première balise.
    Pourtant j’ai vérifié que je met bien les bonnes valeurs dans les bonnes cases, c’est bien le cas.
    J’ai fais également :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI XMLRecherche(‘XML’, ‘baliseRecherchee’, XMLBalise + XMLNiveauCourant + XMLSousElement) ALORS
        recupDonnee = XMLDonnee(‘XML’)
        recupDonnee2 = XMLSuivant(‘XML’)
    FIN
    Ça me renvoie une case vide.

    Je crois que je n’ai pas vraiment la logique sur le coup, je ne comprend pas comment ça fonctionne. Mais même en Java j’ai un peu de mal avec cette partie la, car j’essaie de faire la même chose en Java mais je bloque exactement au même endroit 😔.

    En tout cas merci beaucoup les pistes je vais continuer à chercher.

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 351
    Points : 9 507
    Points
    9 507
    Par défaut
    Pour plus de lisibilité, utilise les balises de code pour mettre ton code (bouton #).

    Tu ne fait pas de boucle, donc cela ne parcourt pas ton fichier XML. Ton code devrait plutôt ressembler à ce ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    XMLRecherche("XML", "baliseRecherchee",  XMLBalise + XMLNiveauCourant + XMLSousElement) // La recherche
    TANTQUE XMLTrouve("DocXML") // La boucle avec le condition d'arrêt
            recupDonnee = XMLDonnee("XML") // La récupération de donnée
            Trace("Balise trouvée " + XMLNomElément("DocXML")) // L'affichage
            XMLSuivant("XML") // Le passage à l'élément suivant
    FIN
    Note : Sous Windev, le délimiteur de chaîne est le guillemet.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Désolée pour la lisibilité au niveau du code, je répond avec mon téléphone et je n’ai pas trouvé l’option.

    Je vais essayer ça.

    Merci beaucoup de ton aide 😊

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    Tu peux gérer aussi les .xml, .xsd et .json dans les descriptions externes. Cela permet d'utiliser l'autocompletion.
    tu accèdes aux descriptions externes dans l'explorateur de projet "en bas".

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Pour plus de lisibilité, utilise les balises de code pour mettre ton code (bouton #).

    Tu ne fait pas de boucle, donc cela ne parcourt pas ton fichier XML. Ton code devrait plutôt ressembler à ce ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    XMLRecherche("XML", "baliseRecherchee",  XMLBalise + XMLNiveauCourant + XMLSousElement) // La recherche
    TANTQUE XMLTrouve("DocXML") // La boucle avec le condition d'arrêt
            recupDonnee = XMLDonnee("XML") // La récupération de donnée
            Trace("Balise trouvée " + XMLNomElément("DocXML")) // L'affichage
            XMLSuivant("XML") // Le passage à l'élément suivant
    FIN
    Note : Sous Windev, le délimiteur de chaîne est le guillemet.

    La boucle que tu m’as donnée est infinie mais jusque là c’est normal car il trouvera toujours le fichier xml. J’essaie de trouver une autre fonction pour ajouter une condition mais même en regardant les explications du lien que tu m’as donné je ne comprends pas comme elles fonctionnent.
    J’ai voulu utiliser XMLElement pour ajouter à la condition et mettre que tant que le fichier et que tant qu’il y a un élément de se nom la, il continue à récupérer les données mais il ne trouve rien.

    Je suis vraiment perdue sur le coup 😕

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par alaclef Voir le message
    Tu peux gérer aussi les .xml, .xsd et .json dans les descriptions externes. Cela permet d'utiliser l'autocompletion.
    tu accèdes aux descriptions externes dans l'explorateur de projet "en bas".
    Tu parles de «*description xml et xsd*» dans l’arborescence à droite ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    oui dans l'explorateur de projet ("à droite").
    Tu peux ajouter un .xml ou .xsd et par la suite le manipuler facilement avec les fonction XML comme un fichier de base de données.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    Il y a deux exemples XML (en 24 en tout cas)
    Fait ouvrir un exemple et rechercher xml.

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2017
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Hmmm, gardes la même variable pour ton fichier XML.

    Etape 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Récupération du contenu XML du fichier "nomfichier.xml"
    MaSourceXML est une chaîne = fChargeTexte("Emplacement\nomfichier.xml")
    // Création du document XML
    XMLDocument("DocXML", MaSourceXML)
    Etape 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    XMLRecherche("DocXML", "baliseRecherchee",  XMLBalise + XMLNiveauCourant + XMLSousElement) // La recherche
    TANTQUE XMLTrouve("DocXML") = Vrai // La boucle avec la condition d'arrêt
            recupDonnee = XMLDonnee("DocXML") // La récupération de donnée
            Trace("Balise trouvée " + XMLNomElément("DocXML")) // L'affichage
            XMLSuivant("DocXML") // Le passage à l'élément suivant
    FIN
    Théoriquement, pas de boucle infinie là.

  14. #14
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 351
    Points : 9 507
    Points
    9 507
    Par défaut
    Bien vu M Ananas,

    J'ai fait un assemblage de code à l'arrache sans tester, et voilà !

  15. #15
    Futur Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2020
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Mr Ananas Voir le message
    Bonjour,

    Hmmm, gardes la même variable pour ton fichier XML.

    Etape 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Récupération du contenu XML du fichier "nomfichier.xml"
    MaSourceXML est une chaîne = fChargeTexte("Emplacement\nomfichier.xml")
    // Création du document XML
    XMLDocument("DocXML", MaSourceXML)
    Etape 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    XMLRecherche("DocXML", "baliseRecherchee",  XMLBalise + XMLNiveauCourant + XMLSousElement) // La recherche
    TANTQUE XMLTrouve("DocXML") = Vrai // La boucle avec la condition d'arrêt
            recupDonnee = XMLDonnee("DocXML") // La récupération de donnée
            Trace("Balise trouvée " + XMLNomElément("DocXML")) // L'affichage
            XMLSuivant("DocXML") // Le passage à l'élément suivant
    FIN
    Théoriquement, pas de boucle infinie là.

    Désolé j’étais en vacances.

    Je regarde ça demain et je vous redis. En tout cas un grand merci pour l’aide apportée 😊

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

Discussions similaires

  1. [WD17] Fichier XML et Windev
    Par karim15 dans le forum WinDev
    Réponses: 4
    Dernier message: 22/06/2016, 10h40
  2. parcour XML avec Windev
    Par maty09 dans le forum WinDev
    Réponses: 21
    Dernier message: 19/04/2013, 13h16
  3. [WD17] probléme xml sur Windev
    Par nocri5810 dans le forum WinDev
    Réponses: 5
    Dernier message: 04/03/2013, 15h21
  4. [WD15] XML et windev "Le document XML <document> n'existe pas!"
    Par MicaelFelix dans le forum WinDev
    Réponses: 1
    Dernier message: 20/03/2010, 18h09
  5. Petit problème avec XML et WinDev
    Par MicaelFelix dans le forum WinDev
    Réponses: 1
    Dernier message: 18/09/2006, 16h26

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