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 :

parcour XML avec Windev


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut parcour XML avec Windev
    Bonjour,

    je rencontre un problème pour parcourir ce type de fichier xml avec les fonctions de windev (fichier xml en pièce jointe )
    dans lequel on peut trouver plusieurs réservation et des attributs identique pour une même réservation.
    on voit par exemple dans le fichier que j'ai joint qu'il y a 2 réservations.

    j'arrive assez facilement à parcourir un fichier xml mais la ce qui m’embête c'est la façon dont ce fichier est structuré.
    Je dois quasiment récupérer toute les informations du fichier

    Si quelqu'un a des conseils à me donner je suis preneur je bloque depuis déjà quelques jours.

    Merci
    Images attachées Images attachées  

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2010
    Messages : 553
    Par défaut
    C'est vrai qu'avec windev cela peut paraître compliqué alors que c'est très simple. Le souci c'est qu'en fait il y a dans windev trois possibilités pour lire et créer ces documents et que la documentation est assez faible sur ce sujet.

    1ere méthode : par l'analyse et les commandes h
    . Dans l'analyse du projet, importer le fichier xml directement; si le fichier est bien structuré, windev crée des fichiers avec des relations dont la structure correspond a l'arbre xml et dont la connexion pointe sur le fichier xml d'origine
    . Utiliser les fonctions h habituelles pour parcourir le xml
    . Méthode la plus simple

    2eme methode : xmlDocument
    . Dans le projet, importer le fichier xml comme un document xml (on trouve cette fonction dans la structure du projet dans la fenêtre de droite sous ' document xml')
    . Windev crée une structure xml et on va pouvoir parcourir les branches du xml comme un objet avec les fils des noeuds accédés comme cela : doc.niveau1.niveau2[2]
    . Regarder l'aide pour les fonctions et des exemples
    . C'est la méthode que je préfère

    3ème méthode: fichier texte
    . A la main avec des commandes position

    Je crois que l'on peut utiliser des commandes xml (xmlfils) dans le cas 2 mais je ne le fais jamais car je connais la structure du xml que je manipule.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Merci pour l'aide.

    Voila mon taf :

    Je crée un fichier XML avec les fonctions XML de windev( XMLAjouteFils XMLAjouteAttribut etc ) pas de souci particulier.

    J’envoie ensuite ce fichier xml avec la fonction HTTPrequete.

    Je récupère la réponse sous forme XML (Il s'agit de réservation(s) ) que je dois parcourir pour intégrer certaines données à la base de données et la ça pose problème ma technique n'est pas bonne je n'arrive pas à récupérer les données de plusieurs réservations( voir fichier joint dans mon 1er post un exemple de la réponse du serveur avec 2 réservations)

    Si quelqu’un peut me donner des conseils sur mon code en prenant bien sur le temps de regarder le type de fichier que je parcours (cf 1er post).
    Merci de l'aide qui pourrait m'être apportée.

    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
    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
     
     
    PROCEDURE reservationWithDeatails_bis()
     
     
    //création du fichier XML(la demande) qui est envoyé par http requete pour ensuite récupérer la réponse qui sera parcourue plus bas ==>pas de souci sur la création du fichier xml qui servira de requete au serveur<====
     
    HLitPremier(Param_ParityRate)
     
    ProcedureXML()
     
    XMLAjouteFils("docXml","reservationsWithDetails","",Vrai)
    XMLAjouteAttribut("docXml","hotelId",Param_ParityRate.Login)
    //XMLAjouteAttribut("docXml","portalId","206")
    XMLAjouteAttribut("docXml","startDate","2013-04-01")
    XMLAjouteAttribut("docXml","endDate","2013-04-30")
    XMLAjouteAttribut("docXml","useDLM","false")
     
     
    testChaineXML()
     
     
     
     
    // appel de la procédure "Requete" servant à faire la requete HTTP
     
    charge_Requete(sSourceXML,Param_ParityRate.URL_ParityRate)
     
    //récupération de la réponse HTTP : Gb_sRes_http
     
    //puis création d'un fichier xml : sdocXML_rep avec comme données le contenu de Gb_sRes_http
     
    sdocXML_rep est une chaîne="sdocXML_rep"
     
    XMLDocument(sdocXML_rep, Gb_sRes_http)
    TestVerifSyntax()
     
     
    XMLRacine(sdocXML_rep)
     
     
     
     
     
     
     
     
    ================>>>>>>>//voila la partie qui parcourt la réponse et qui me pose probleme car je ne récupère qu'une réservation..... <<<<<<<===================
     
     
           Je n'ai pas besoin de toute les données du fichier XML, il y a dans ces 2 boucles toute les données que je souhaitent récupérer dans le fichier XML pour les intégrer à la base de données
             mais je n'arrive pas à récup plusieurs réservations
     
     
     
    //Une première boucle pour la balise reservation
     
     
    XMLRecherche("sdocXML_rep","reservation",XMLSousElément +XMLContinue)
     
    SI XMLTrouve("sdocXML_rep") = Faux ALORS
    	Trace("Pas de réponse")
    FIN
     
    TANTQUE PAS XMLEnDehors("sdocXML_rep")
     
    	HRAZ(Reservation)
    	HRAZ(Client)
    	HRAZ(Garantie_Reservation)
     
    	XMLFils("sdocXML_rep")
    	XMLPremier("sdocXML_rep")
    	TANTQUE XMLTrouve("sdocXML_rep")
    		SELON XMLNomElément("sdocXML_rep")	
     
    			CAS "dlm" 
     
     
    			CAS "portalId" 
     
     
    			CAS "checkin" 
     
    	           Reservation.DateArrive = ChaîneVersDate(XMLDonnée("sdocXML_rep"),"AAAA-MM-JJ")
     
    			CAS = "checkout" 						
    				Reservation.DateArrive = ChaîneVersDate(XMLDonnée("sdocXML_rep"),"AAAA-MM-JJ")
     
    			CAS "reservation_date"
    				Reservation.DateResa = ChaîneVersDate(XMLDonnée("sdocXML_rep"),"AAAA-MM-JJ")
     
    			CAS "firstName" 
    				Client.Prenom_cli = XMLDonnée("sdocXML_rep")
     
    		    CAS "secondName" 
    				Client.Nom_Cli = XMLDonnée("sdocXML_rep")
     
    			CAS "adress"
    				Client.Adresse = XMLDonnée("sdocXML_rep")
     
    			CAS "city"
    				Client.Ville = XMLDonnée("sdocXML_rep")
     
    			CAS "zipcode"
    				Client.CP = XMLDonnée("sdocXML_rep")
     
    				CAS "country"
    				Client.Pays = XMLDonnée("sdocXML_rep")
     
    			CAS "telephone" 
    				Client.Tel_fixe = XMLDonnée("sdocXML_rep")
     
    			CAS "email" 
    				Client.Email = XMLDonnée("sdocXML_rep")
     
    //			cas "rooms" 
    //				Cat_Chambre_Reservation.Nombre = XMLDonnée("sdocXML_rep")
     
    			CAS "person"
    				Reservation.NbPersonnes = XMLDonnée("sdocXML_rep")
     
    			CAS "children"
    				Reservation.NbEnfants = XMLDonnée("sdocXML_rep")
     
    			CAS "price" 
    				Reservation.PrixTotal = XMLDonnée("sdocXML_rep")
     
    			CAS "currencycode" 
     
     
    			CAS "status" 
     
     
     
    			CAS "paymentType" 
     
     
    			CAS "offer" 
     
     
    			CAS "notes" 
    				Reservation.Observations = XMLDonnée("sdocXML_rep")	
     
    			CAS "cancelbydetail" 
     
     
    			CAS "cancancel" 
     
     
    		FIN
    		XMLSuivant("sdocXML_rep")
    	FIN
     
     
     
     
     
     
     
                //une deuxieme boucle pour la balise ccData
     
     
    	XMLRacine("sdocXML_rep")
    	XMLRecherche("sdocXML_rep","ccData",XMLSousElément +XMLContinue)
    	XMLFils("sdocXML_rep")
    	XMLPremier("sdocXML_rep")
     
    	TANTQUE XMLTrouve("sdocXML_rep")
    		SELON XMLNomElément("sdocXML_rep")			
     
    			CAS "ccCode" 
     
     
    			CAS "ccNumber" 
    				Garantie_Reservation.Nom_CB  = XMLDonnée("sdocXML_rep")
     
    			CAS "ccExpireDate" 
    				Garantie_Reservation.DateExpire_CB = XMLDonnée("sdocXML_rep")
     
     
    			CAS "ccHolder" 
    				Garantie_Reservation.Nom_CB = XMLDonnée("sdocXML_rep")
     
     
    		FIN
     
    		XMLSuivant("sdocXML_rep")
    	FIN
     
     
                   ===========>>>> //fin de la partie parcours du fichier XML <<<<<============================================
     
     
     
     
     
     
     
     
     
     
     
    		//  IMPORTANT==>>> Cette partie concerne l'intégration à la base de données il faudrait qu'elle soi parcourue à chaque nouvelle réservation dans une grosse boucle.  
     
     
     
     
    	HAjoute(Garantie_Reservation)
     
    	HLitPremier(Parametres_sys)
     
    	Parametres_sys.DerniereReservation=Reservation.CodeReservation
     
    	HModifie(Parametres_sys)
     
    	Reservation.CodeReservation = Parametres_sys.DerniereReservation+1
    	Reservation.IDClient = Client.IDClient
    	Reservation.NbNuits = 2 
    	Reservation.Degre = 1 //valeur par défaut
    	Reservation.IDGarantie_Reservation = Garantie_Reservation.IDGarantie_Reservation
     
    	HAjoute(Client)
     
    	HAjoute(Reservation)
     
    	nId_ChbParityRate est un entier			
    	XMLRacine("sdocXML_rep")
    	XMLRecherche("sdocXML_rep","reservationDetail",XMLSousElément +XMLContinue)
    	XMLFils("sdocXML_rep")
    	XMLPremier("sdocXML_rep")
     
     
    		SELON XMLNomElément("sdocXML_rep")
     
    			CAS "roomId"
    				nId_ChbParityRate = XMLDonnée("sdocXML_rep")
     
    		FIN
     
    		HLitRecherchePremier(Chambre,id_chambreParityRate,nId_ChbParityRate)
     
    		HRAZ(Cat_Chambre_Reservation)		
    		Cat_Chambre_Reservation.IDCat_Chambre = Chambre.IDCat_Chambre                        
    		Cat_Chambre_Reservation.IDReservation = Reservation.IDReservation
    		Cat_Chambre_Reservation.Nombre=1 //A CODER PLUS TARD
    		HAjoute(Cat_Chambre_Reservation)
     
     
    		HRAZ(Chambre_Reservation)
    		Chambre_Reservation.IDReservation = Reservation.IDReservation
    		Chambre_Reservation.IDChambre = Chambre.IDChambre
    		HAjoute(Chambre_Reservation)
     
     
     
     
    XMLTermine(sdocXML_rep)
    XMLTermine("docXml")
    fSupprime(sSourceXML)
    Mathias

  4. #4
    Membre émérite
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2010
    Messages : 553
    Par défaut
    Personnellement je me suis toujours emmêlé les pinceaux avec les fonctions xml.

    Ma solution la plus simple : importe ton fichier xml dans l'analyse pour créer un modèle.

    Ensuite ton fichier xml est comme un fichier hyperfile et tu as plusieurs fichiers reliés que tu peux parcourir.

    L'autre solution est de faire un xml document mais de parcourir l'arborescence des objets.

    Xml.niveau1[3]. Niveau 2.. valeur

    L'astuce est de connaître à l'avance la structure de l'arbre et de déterminer le nombre d'éléments avec nombre= xml.niveau1..occurrence !

    Ensuite tu fais des
    POUR i=1 A nombre

    pour te balader dans le niveau.

    Le debugger permet également de bien comprendre en visualisant la variable xml.....

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Merci
    J'ai essayé la 1ère solution mais j'arrive pas à importer toutes les données dans un fichier d’analyse avec la fonction HImporteXML
    Les valeurs des attributs ne sont pas importées ..

    Est-ce que vous auriez un exemple?

    Mathias

  6. #6
    Membre émérite
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2010
    Messages : 553
    Par défaut
    Ce n'est pas à un import dynamique à l'aide de HImportXML auquel je pensais, mais à celà (marche nettement mieux) :
    http://doc.pcsoft.fr/fr-fr/?9000029&...cces-natif-xml

    L'accès natif permet ensuite de manipuler le fichier XML à l'aide des fonctions H, les différents niveaux du XML étant des fichiers différents !

    On gère l'association de la description à l'aide du classique Connexion vers le bon fichier.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Merci pour l'info en effet cette méthode me conviens tout à fait et va me faire gagner du temps
    C'est par contre moins bien du coté développement en effet seul ce langage permet cela et le jour ou je serai confronté à ce même genre de taches avec un autre langage ....

    En tout cas je peux accéder à toutes les données et piocher dans celle qui m’intéressent
    Je re posterai si jamais pour dire où j'en suis


    Mathias

  8. #8
    Membre émérite
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2010
    Messages : 553
    Par défaut
    Citation Envoyé par maty09 Voir le message
    Merci pour l'info en effet cette méthode me conviens tout à fait et va me faire gagner du temps
    C'est par contre moins bien du coté développement en effet seul ce langage permet cela et le jour ou je serai confronté à ce même genre de taches avec un autre langage ....

    En tout cas je peux accéder à toutes les données et piocher dans celle qui m’intéressent
    Je re posterai si jamais pour dire où j'en suis


    Mathias
    C'est pour cela qu'il faut faire de la pub à WINDEV !!!!!!!

    Parlez -en autour de vous, montrer aux grincheux qui ne veulent coder qu'en C ou Java qu'ils vont être bientôt dépassés ..... moi cela fait 30 ans que je code, je sais de quoi je parle.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Une dernière petite question comment avec cette technique je peux faire çà dynamiquement?
    Car oui en effet tout doit être dynamique dans mon projet.
    J'ai bien peur de devoir retourner à mes fonctions xmlsuivant xmlfils xmlparent ...
    J'aurai tout de même appris quelque chose

  10. #10
    Membre très actif

    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
    Par défaut
    Bonjour,

    la méthode décrite par Courdi permet demanipuler un fichier XML modifié par un pog exterieur (site web par exemple) dans ce cas on peut parler de XML dynamique.
    Je ne comprends pas trop ce qui va te bloquer. Tu peux nous expliquer les coup de "tout doit être dynamique"?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    En gros je travail pour une société qui a déjà développé et commercialisé un logiciel (en windev) pour les hôteliers.
    Le défaut de ce logiciel c'est qu'il ne prend pas en compte les réservations prises par les clients sur des sites internet.
    Pour cela on à pris un compte chez parityrate une société qui gère les réservations prises en ligne. Ils communiquent qu'avec des fichier xml à l'aide d'api. L'image dans mon 1er post est une réponse qui m'indique les réservations faites en ligne. on voit qu'il y a 2 réservations il peut y en avoir plus ,ou moins et ces informations doivent etre implémenter dans le logiciel et cohabiter avec les réservations faites sur place par l’hôtelier. Tout doit être dynamique faudrait pas que l’hôtelier nous appel toutes les 5min

    J'ai découvert une nouvelle fonction xml dans windev XMLExécuteXPath qui va peut être m'aider à parcourir plus facilement plusieurs réservation pour en extraire les données.
    Sinon si quelqu’un d'autre a des conseil je suis preneur

  12. #12
    Membre très actif

    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
    Par défaut
    En fait voilà ton plan (deux approches):
    Approche N°1
    1 Création d'une analyse basée sur un fichier XML identique à ton fichier (XMLBASE)

    2 Execution temporisée d'une méthode dans un thread secondaire pour la mise à jour du XML récupéré via l'API Web (XMLWEB)

    3 Copie du XML récupéré (XMLPOSTE)

    4 Incorporation des données du XMLPOSTE dans le fichier XMLBASE via les fonctions H*** (avec mise à jour ou remplacement des données selon les options que tu auras défini)

    5 destruction du XMLPOSTE

    Approche N°2


    1 Création d'une analyse conforme à ton application de gestion des reservations

    2 Execution temporisée d'une méthode dans un thread secondaire pour la mise à jour du XML récupéré via l'API Web (XMLWEB)

    3 Copie du XMLWEB dans un fichier XML (XMLPOSTE) Chargement su fichier XMLPOSTE dans un XMLDOCUMENT

    4 Parcours du XMLDOCUMENT et incorporation ou modification des données de ton ananlyse

    5 destruction du XMLDOCUMENT et du XMLPOSTE

    Je pense que comme ça tu dois t'en sortir
    Personnellement comme Courdi je préfère la version XMLDOCUMENT car moins de modifs dans mon analyse de départ.

    Bon dev

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Pardon mais je n'ai pas compris ..
    api web? XMLBASE? XMLPOSTE?

    La société qui gère les résa en ligne nous ont donné une documentation(api). C'est un texte au format xml dans lequel je précise mdp login nom de l’hôtel etc je l'envoi grâce à la fonction httpRequete de windev et je reçois une réponse comme dans mon 1er post.

  14. #14
    Membre très actif

    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
    Par défaut
    API : Application programming interface
    Donc ce sont des fonctions qui te permettent de récupérer ton fichier XML

    Comme tu dois manipuler plusieurs fichiers XML je les ai nommés arbitrairement
    - XMLWEB : c'est le XML que tu récupères du Web
    -XMLBASE : c'est le XML utilisé par ton analyse
    - XMLPOSTE : c'est une copie de XMLWEB car tu ne sais pas si ce fichier est à quleques secondes d'être mis à jour au moment de ton traitement donc c'est plus tranquille si tu travailles sur une copie.

    BD

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Je n'ai aucun souci à créer le fichier XMLbase qui sert de demande au serveur j'arrive également à récupérer la réponse (XMLweb) et la charger dans un XMLdocument cf mon 1er post . C'est traiter cette réponse pour que les informations de plusieurs réservations s'intègrent au logiciel qui m'est compliqué.

    ps: je suis étudiant et jeune développeur il s'agit d'un stage que j’effectue, j'utilise Windev que depuis un moi et demi.
    Du coup pas mal de choses que vous me dites ne me parlent pas ..
    Mais l'aide m'est très utile.
    Merci en tout cas

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 394
    Par défaut
    Bonjour,

    Tu peux fournir ton fichier xml stp afin que je fasse quelques tests.

    @+

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Voila le type de réponse que me renvoi la requeteHTTP

    Merci d'avance pour l'aide

    Mathias
    Fichiers attachés Fichiers attachés

  18. #18
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 915
    Par défaut
    Bonjour,

    Voici un exemple de code pour l'utilisation des requêtes XPath

    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
    sPathXml est une chaîne
    sXML est une chaîne
    sXPath est une chaîne
    nNbRéservation est entier
     
    sPathXml = "E:\ReservationWithDetails.xml"
    SI PAS fFichierExiste(sPathXml) ALORS
    	Erreur("le fichier '" + sPathXml + "' n'existe pas")
    SINON
    	sXML = fChargeTexte(sPathXml)
    	XMLTermine("DocXML")
    	SI XMLDocument("DocXML", sXML) ALORS
    		sXPath = "count(/Response/reservation)"
    		SI XMLExécuteXPath("DocXML",sXPath) ALORS
    		 	SI XMLEnDehors("DocXML") ALORS
    				nNbRéservation = XMLRésultat("DocXML")
    			FIN
    		SINON
    			Erreur(ErreurInfo())
    		FIN
    		Trace("Il y a " + nNbRéservation + " réservation")
    		POUR i = 1 A nNbRéservation
    			Trace(XMLLit("DocXML","/Response/reservation[" + i +"]/@id"))
    			Trace(XMLLit("DocXML","/Response/reservation[" + i +"]/@dlm"))
    			Trace(XMLLit("DocXML","/Response/reservation[" + i +"]/reservationDetail/@checkin"))
    			Trace(XMLLit("DocXML","/Response/reservation[" + i +"]/ccData/@ccHolder"))
    		FIN
    	SINON
    		Erreur(ErreurInfo())
    	FIN
    FIN

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Bonjour,

    J'en attendais pas tant merci

    Pourquoi un XMLTermine("DocXML") à la ligne 11?

  20. #20
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 915
    Par défaut
    C'est parce que j'ai pris l'habitude de fermer le "DOCXML" avant de l'utiliser.
    mais ce n'est pas utile

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème parcours d'un fichier XML avec namespace
    Par ramroum1986 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 20/05/2010, 21h55
  2. Problème avec namespace pour parcours xml
    Par ramroum1986 dans le forum APIs
    Réponses: 3
    Dernier message: 20/05/2010, 12h46
  3. [XML] [EXPAT] Parcours d'un XML (avec sax) en PHP
    Par GLSpirit dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/07/2007, 01h29
  4. 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