[WD75] XML j'ai comme une petite flemme de chercher
4 réponses
Roumegou Eric
soit une chaine XMLmaCh contenant de l'xml de ce type
<PANIER>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
etc ...
</PANIER>
comment :
Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas
faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml.
Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un
moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Roumegou Eric
Le 03/11/2004, Roumegou Eric a supposé :
soit une chaine XMLmaCh contenant de l'xml de ce type <PANIER> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> <LIGN> <GDE_ID>123</GDE_ID><QTE>1</QTE>
Hum ! bien sûr l'id est unique et change à chaque fois. Tiens ! pan sur la tête: le copier coller ne dispense pas de faire attention.
</LIGN> etc ... </PANIER>
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Le 03/11/2004, Roumegou Eric a supposé :
soit une chaine XMLmaCh contenant de l'xml de ce type
<PANIER>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
<LIGN>
<GDE_ID>123</GDE_ID><QTE>1</QTE>
Hum ! bien sûr l'id est unique et change à chaque fois. Tiens ! pan sur
la tête: le copier coller ne dispense pas de faire attention.
</LIGN>
etc ...
</PANIER>
--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
soit une chaine XMLmaCh contenant de l'xml de ce type <PANIER> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> <LIGN> <GDE_ID>123</GDE_ID><QTE>1</QTE>
Hum ! bien sûr l'id est unique et change à chaque fois. Tiens ! pan sur la tête: le copier coller ne dispense pas de faire attention.
</LIGN> etc ... </PANIER>
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Marcel.berman
Salut !
On 3-Nov-2004, Roumegou Eric wrote:
soit une chaine XMLmaCh contenant de l'xml de ce type <PANIER> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> etc ... </PANIER>
comment : Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml. Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
La solution m'intéresse aussi !!! Pour le moment, je chipote avec des fonctions "maison" basées sur des chaineoccurrence(), extraitchaine() et reconstruction du code XML ... C'est lourd ! Je pensais pouvoir utiliser XPath ... mais je dois avouer que je m'y perd un peu ... :o(
Bien à vous ! -- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477
Salut !
On 3-Nov-2004, Roumegou Eric <UtilisezleLien@fin.msg> wrote:
soit une chaine XMLmaCh contenant de l'xml de ce type
<PANIER>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
etc ...
</PANIER>
comment :
Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas
faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml.
Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un
moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
La solution m'intéresse aussi !!!
Pour le moment, je chipote avec des fonctions "maison" basées sur des
chaineoccurrence(), extraitchaine() et reconstruction du code XML ... C'est
lourd !
Je pensais pouvoir utiliser XPath ... mais je dois avouer que je m'y perd un
peu ... :o(
Bien à vous !
--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
soit une chaine XMLmaCh contenant de l'xml de ce type <PANIER> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> etc ... </PANIER>
comment : Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml. Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
La solution m'intéresse aussi !!! Pour le moment, je chipote avec des fonctions "maison" basées sur des chaineoccurrence(), extraitchaine() et reconstruction du code XML ... C'est lourd ! Je pensais pouvoir utiliser XPath ... mais je dois avouer que je m'y perd un peu ... :o(
Bien à vous ! -- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477
Roumegou Eric
a écrit :
Salut !
On 3-Nov-2004, Roumegou Eric wrote:
soit une chaine XMLmaCh contenant de l'xml de ce type <PANIER> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> etc ... </PANIER>
comment : Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml. Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
La solution m'intéresse aussi !!! Pour le moment, je chipote avec des fonctions "maison" basées sur des chaineoccurrence(), extraitchaine() et reconstruction du code XML ... C'est lourd ! Je pensais pouvoir utiliser XPath ... mais je dois avouer que je m'y perd un peu ... :o(
l'idéal serait de lancer du code sql sur une chaine XML. genre XMLRequest("SELECT GDE_ID WHERE GDE_ID247") je suis en train de le coder façon classique mais je ne sais meme pas si l'on peut màj la chaine XML ? Autrement dit, soit cette déclaration XMLDocument("DocXML", wPPL_DETAIL) si je bidouille la chaine originale wPPL_DETAIL, DocXMl prendra-t-il en compte les modifs?
Hum ! à chaque fois que je fais le choix du support XML pour mes données, j'ai vraiment l'impression que cela tiens plus du snobisme que du fonctionnel et de la performance.
Bien à vous !
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Marcel.berman@managingbusiness.be a écrit :
Salut !
On 3-Nov-2004, Roumegou Eric <UtilisezleLien@fin.msg> wrote:
soit une chaine XMLmaCh contenant de l'xml de ce type
<PANIER>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
<LIGN>
<GDE_ID>10247</GDE_ID><QTE>1</QTE>
</LIGN>
etc ...
</PANIER>
comment :
Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas
faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml.
Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un
moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
La solution m'intéresse aussi !!!
Pour le moment, je chipote avec des fonctions "maison" basées sur des
chaineoccurrence(), extraitchaine() et reconstruction du code XML ... C'est
lourd !
Je pensais pouvoir utiliser XPath ... mais je dois avouer que je m'y perd un
peu ... :o(
l'idéal serait de lancer du code sql sur une chaine XML.
genre XMLRequest("SELECT GDE_ID WHERE GDE_ID247")
je suis en train de le coder façon classique mais je ne sais meme pas
si l'on peut màj la chaine XML ?
Autrement dit, soit cette déclaration
XMLDocument("DocXML", wPPL_DETAIL)
si je bidouille la chaine originale wPPL_DETAIL, DocXMl prendra-t-il en
compte les modifs?
Hum ! à chaque fois que je fais le choix du support XML pour mes
données, j'ai vraiment l'impression que cela tiens plus du snobisme que
du fonctionnel et de la performance.
Bien à vous !
--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
soit une chaine XMLmaCh contenant de l'xml de ce type <PANIER> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> <LIGN> <GDE_ID>10247</GDE_ID><QTE>1</QTE> </LIGN> etc ... </PANIER>
comment : Rechercher si la valeur de mon GDE_ID est déja présente et dans ce cas faire un + 1 dans la valeur se rapportant à QTE et màj la chaine xml. Dans le cas contraire, insérer un <LIGN>...</LIGN> complet.
je me mélange un peu dans les fonctions de recherche et y a-t-il un moyen de faire une insertion à part manipuler la chaîne ?
Merci de vos réponses
La solution m'intéresse aussi !!! Pour le moment, je chipote avec des fonctions "maison" basées sur des chaineoccurrence(), extraitchaine() et reconstruction du code XML ... C'est lourd ! Je pensais pouvoir utiliser XPath ... mais je dois avouer que je m'y perd un peu ... :o(
l'idéal serait de lancer du code sql sur une chaine XML. genre XMLRequest("SELECT GDE_ID WHERE GDE_ID247") je suis en train de le coder façon classique mais je ne sais meme pas si l'on peut màj la chaine XML ? Autrement dit, soit cette déclaration XMLDocument("DocXML", wPPL_DETAIL) si je bidouille la chaine originale wPPL_DETAIL, DocXMl prendra-t-il en compte les modifs?
Hum ! à chaque fois que je fais le choix du support XML pour mes données, j'ai vraiment l'impression que cela tiens plus du snobisme que du fonctionnel et de la performance.
Bien à vous !
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Roumegou Eric
Roumegou Eric vient de nous annoncer :
a écrit :
Hum ! à chaque fois que je fais le choix du support XML pour mes données, j'ai vraiment l'impression que cela tiens plus du snobisme que du fonctionnel et de la performance.
et donc on choisit la méthode bourrin ... exit les fn XML
arech,newval,oldval sont des chaînes oldqte,newqte sont des entiers // Recherche si L'article n'existe pas déja. arech="<LIGN><GDE_ID>"+GDE_ID+"</GDE_ID>" SI Position(wPPL_DETAIL,arech)>0 ALORS // trouvé on incrémente de 1 oldqte=Val(ExtraitEntre(wPPL_DETAIL,arech+"<QTE>","</QTE>")) newqte=oldqte+1 // et l'on remplace oldval=arech+"<QTE>"+oldqte+"</QTE></LIGN>"+RC newval=arech+"<QTE>"+newqte+"</QTE></LIGN>"+RC wPPL_DETAIL=Remplace(wPPL_DETAIL,oldval,newval) SINON //pas trouvé, on crée une nouvelle ligne en fin de panier wPPL_DETAIL=Remplace(wPPL_DETAIL,"</PANIER>",arech+"<QTE>1</QTE></LIGN>"+RC+"</PANIER>") FIN
avec la fn ExtraitEntre FONCTION ExtraitEntre(pExploree,pChDeb,pChFin,pDeb=1) // extrait la partie de pExploree entre pChDeb et pChFin
chRetour est chaîne posdeb,posfin sont des entiers posdeb=0;posfin=0;chRetour="" posdeb=Position(pExploree,pChDeb,pDeb)+Taille(pChDeb) posfin=Position(pExploree,pChFin,posdeb) SI posfin<>0 ALORS chRetour=Milieu(pExploree,posdeb,posfin-posdeb) pDeb=posfin FIN
RENVOYER chRetour
Sinon, Il me semble avoir vu des annonces concernant XML pour la 9 qui se manipulerait avec les fn fichiers ????
Bien à vous !
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Roumegou Eric vient de nous annoncer :
Marcel.berman@managingbusiness.be a écrit :
Hum ! à chaque fois que je fais le choix du support XML pour mes données,
j'ai vraiment l'impression que cela tiens plus du snobisme que du fonctionnel
et de la performance.
et donc on choisit la méthode bourrin ... exit les fn XML
arech,newval,oldval sont des chaînes
oldqte,newqte sont des entiers
// Recherche si L'article n'existe pas déja.
arech="<LIGN><GDE_ID>"+GDE_ID+"</GDE_ID>"
SI Position(wPPL_DETAIL,arech)>0 ALORS
// trouvé on incrémente de 1
oldqte=Val(ExtraitEntre(wPPL_DETAIL,arech+"<QTE>","</QTE>"))
newqte=oldqte+1
// et l'on remplace
oldval=arech+"<QTE>"+oldqte+"</QTE></LIGN>"+RC
newval=arech+"<QTE>"+newqte+"</QTE></LIGN>"+RC
wPPL_DETAIL=Remplace(wPPL_DETAIL,oldval,newval)
SINON
//pas trouvé, on crée une nouvelle ligne en fin de panier
wPPL_DETAIL=Remplace(wPPL_DETAIL,"</PANIER>",arech+"<QTE>1</QTE></LIGN>"+RC+"</PANIER>")
FIN
avec la fn ExtraitEntre
FONCTION ExtraitEntre(pExploree,pChDeb,pChFin,pDeb=1)
// extrait la partie de pExploree entre pChDeb et pChFin
chRetour est chaîne
posdeb,posfin sont des entiers
posdeb=0;posfin=0;chRetour=""
posdeb=Position(pExploree,pChDeb,pDeb)+Taille(pChDeb)
posfin=Position(pExploree,pChFin,posdeb)
SI posfin<>0 ALORS
chRetour=Milieu(pExploree,posdeb,posfin-posdeb)
pDeb=posfin
FIN
RENVOYER chRetour
Sinon, Il me semble avoir vu des annonces concernant XML pour la 9 qui
se manipulerait avec les fn fichiers ????
Bien à vous !
--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Hum ! à chaque fois que je fais le choix du support XML pour mes données, j'ai vraiment l'impression que cela tiens plus du snobisme que du fonctionnel et de la performance.
et donc on choisit la méthode bourrin ... exit les fn XML
arech,newval,oldval sont des chaînes oldqte,newqte sont des entiers // Recherche si L'article n'existe pas déja. arech="<LIGN><GDE_ID>"+GDE_ID+"</GDE_ID>" SI Position(wPPL_DETAIL,arech)>0 ALORS // trouvé on incrémente de 1 oldqte=Val(ExtraitEntre(wPPL_DETAIL,arech+"<QTE>","</QTE>")) newqte=oldqte+1 // et l'on remplace oldval=arech+"<QTE>"+oldqte+"</QTE></LIGN>"+RC newval=arech+"<QTE>"+newqte+"</QTE></LIGN>"+RC wPPL_DETAIL=Remplace(wPPL_DETAIL,oldval,newval) SINON //pas trouvé, on crée une nouvelle ligne en fin de panier wPPL_DETAIL=Remplace(wPPL_DETAIL,"</PANIER>",arech+"<QTE>1</QTE></LIGN>"+RC+"</PANIER>") FIN
avec la fn ExtraitEntre FONCTION ExtraitEntre(pExploree,pChDeb,pChFin,pDeb=1) // extrait la partie de pExploree entre pChDeb et pChFin
chRetour est chaîne posdeb,posfin sont des entiers posdeb=0;posfin=0;chRetour="" posdeb=Position(pExploree,pChDeb,pDeb)+Taille(pChDeb) posfin=Position(pExploree,pChFin,posdeb) SI posfin<>0 ALORS chRetour=Milieu(pExploree,posdeb,posfin-posdeb) pDeb=posfin FIN
RENVOYER chRetour
Sinon, Il me semble avoir vu des annonces concernant XML pour la 9 qui se manipulerait avec les fn fichiers ????
Bien à vous !
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)