| |
Membre enregistré 231 messages |
|
| Posté le 01 mars 2019 - 15:53 |
Bonjour à tous, Je voudrais récupérer les valeurs pour un article recherché par son code barre, Mais je n'y arrive pas, je cherche depuis ce matin et rien... Voici un bout du fichier XML :
<article> <Product> <RecordReference>9782732478470</RecordReference> <NotificationType>03</NotificationType> <ProductIdentifier> <ProductIDType>01</ProductIDType> <IDValue>869191</IDValue> </ProductIdentifier> <ProductIdentifierttt> <ProductIDType>03</ProductIDType> <IDValue>9782732478470</IDValue> </ProductIdentifierttt> <ProductIdentifiert> <ProductIDType>15</ProductIDType> <IDValue>9782732478470</IDValue> </ProductIdentifiert> <ProductIdentifier sourcename="DILICOM" sourcetype="04"> <ProductIDType>31</ProductIDType> <IDValue>FRBNF451998660000005</IDValue> </ProductIdentifier> <Barcode> <BarcodeType>02</BarcodeType> <PositionOnProduct>00</PositionOnProduct> </Barcode> <DescriptiveDetail> <ProductComposition>00</ProductComposition> <ProductForm>BC</ProductForm> <Measure> <MeasureType>01</MeasureType> <Measurement>286</Measurement> <MeasureUnitCode>mm</MeasureUnitCode> </Measure> <Measure> <MeasureType>02</MeasureType> <Measurement>222</Measurement> <MeasureUnitCode>mm</MeasureUnitCode> </Measure> <Measure> </DescriptiveDetail> </Product> </article> Et voilà un bout de code que je n'arrive pas à exploiter :
TableSupprimeTout(tbl_xml) monFichierXML est une chaîne = "\\SRV-GS\Partage_GS\fichier.xml"
contenue_XML est une chaîne contenue_XML = fChargeTexte(monFichierXML)
SI PAS xmlDocument("XMLDoc",contenue_XML) ALORS Erreur("Erreur lors du chargement du fichier ",ErreurInfo(errComplet)) RETOUR FIN
XMLRecherche("XMLDoc",sai_code_barre,XMLValeur)
SI XMLTrouve("XMLDoc") ALORS XMLPremier("XMLDoc") Info(XMLDonnée("XMLDoc")) XMLSuivant("XMLDoc") Info(XMLDonnée("XMLDoc")) XMLSuivant("XMLDoc") XMLFils("XMLDoc") Info(XMLDonnée("XMLDoc")) XMLSuivant("XMLDoc") Info(XMLDonnée("XMLDoc")) XMLParent("XMLDoc") XMLParent("XMLDoc") Info("Blocage ici : "+XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) FIN Le code me semble bizarre... et pas très beau... Ma question est comment faire pour récupérer toutes les valeurs pour le code article passé en paramètre.
Merci d'avance de votre aide.
-- Stéphane.Message modifié, 01 mars 2019 - 15:55 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 231 messages |
|
| Posté le 04 mars 2019 - 12:39 |
Quelqu'un pourrais me donner un coup de main ? Merci d'avance.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
| Posté le 04 mars 2019 - 14:14 |
Le 04/03/2019 à 11:39, "Stéphane D." a écrit :
Quelqu'un pourrais me donner un coup de main ? Merci d'avance.
-- Stéphane.
regarde avec les fonction XMLFils(sMondocXML) XMLPremier(sMondocXML) TANTQUE PAS XMLEnDehors(sMondocXML) SELON XMLNomElément(sMondocXML) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 231 messages |
|
| Posté le 04 mars 2019 - 14:37 |
Merci Marcel, je vais regarder cela...
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
| Posté le 04 mars 2019 - 16:30 |
Le 04/03/2019 à 13:37, "Stéphane D." a écrit :
Merci Marcel, je vais regarder cela...
-- Stéphane. si besoin exemple envoie mon ton email je te fais parvenir une page ou deux BAT |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 231 messages |
|
| Posté le 04 mars 2019 - 17:51 |
Re-Marcel Voici ce que j'ai fais mais il ne lit que le premier article Voici mon code (Je sais vraiment pas si c'est comme cela que l'on code parfaitement le XML)
XMLPremier("XMLDoc") XMLFils("XMLDoc")
TANTQUE PAS XMLEnDehors("XMLDoc") SI XMLNomElément("XMLDoc") = "Product" TANTQUE PAS XMLEnDehors("XMLDoc") XMLFils("XMLDoc") SELON XMLNomElément("XMLDoc") CAS "RecordReference" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "NotificationType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "ProductIDType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "IDValue" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") CAS "ProductIdentifier" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "BarcodeType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "PositionOnProduct" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") CAS "ProductComposition" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "ProductForm" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "MeasureType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "Measurement" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "MeasureUnitCode" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") CAS "ProductClassificationType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "ProductClassificationCode" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "Percent" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") AUTRE CAS Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) FIN XMLSuivant("XMLDoc") FIN FIN XMLSuivant("XMLDoc") FIN
Voici un email de contact : sdeuss@neuf.fr -- Stéphane.Message modifié, 04 mars 2019 - 17:53 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 04 mars 2019 - 18:03 |
Bonjour,
Il te suffit d'importer la structure de ton fichier xml dans ton projet et ensuite tu utilises une variable de type XMLDocument
MonXML est un xmlDocument <Description="test"> = XMLOuvre(fRepExe()+"\test.xml") Trace(MonXML.article.Product.ProductIdentifier[1].IDValue)
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
| Posté le 05 mars 2019 - 05:38 |
Le 04/03/2019 à 16:51, "Stéphane D." a écrit :
Re-Marcel Voici ce que j'ai fais mais il ne lit que le premier article Voici mon code (Je sais vraiment pas si c'est comme cela que l'on code parfaitement le XML) XMLPremier("XMLDoc") XMLFils("XMLDoc")
TANTQUE PAS XMLEnDehors("XMLDoc")
SI XMLNomElément("XMLDoc") = "Product" TANTQUE PAS XMLEnDehors("XMLDoc") XMLFils("XMLDoc") SELON XMLNomElément("XMLDoc") //Product CAS "RecordReference" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "NotificationType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) //ProductIdentifier CAS "ProductIDType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "IDValue" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") CAS "ProductIdentifier" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) //Barcode CAS "BarcodeType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "PositionOnProduct" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") //DescriptiveDetail CAS "ProductComposition" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "ProductForm" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) //Measure CAS "MeasureType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "Measurement" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "MeasureUnitCode" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") //ProductClassification CAS "ProductClassificationType" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "ProductClassificationCode" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) CAS "Percent" : Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) XMLParent("XMLDoc") AUTRE CAS Trace(XMLNomElément("XMLDoc")+ " Valeur : "+XMLDonnée("XMLDoc")) FIN XMLSuivant("XMLDoc") FIN FIN
XMLSuivant("XMLDoc") FIN Voici un email de contact : sdeuss@neuf.fr -- Stéphane. et quand tu as fini le controle tu dois revenir dasn le parent AUTRE CAS FIN XMLSuivant(sMondocXML) FIN XMLParent(sMondocXML)
Bon windev |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 05 mars 2019 - 07:09 |
Bonjour,
Je persiste et signe en disant que mon code est plus claire que le votre... . Gérer le XML de cette manière, ça ne se fait plus.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 05 mars 2019 - 08:03 |
Pour info, avec import de la structure xml dans le projet
Fichier xml
<root> <article> <Product> <RecordReference>9782732478470</RecordReference> <NotificationType>03</NotificationType> <ProductIdentifier> <ProductIDType>01</ProductIDType> <IDValue>869191</IDValue> </ProductIdentifier> <ProductIdentifierttt> <ProductIDType>03</ProductIDType> <IDValue>9782732478470</IDValue> </ProductIdentifierttt> <ProductIdentifiert> <ProductIDType>15</ProductIDType> <IDValue>9782732478470</IDValue> </ProductIdentifiert> <ProductIdentifier sourcename="DILICOM" sourcetype="04"> <ProductIDType>31</ProductIDType> <IDValue>FRBNF451998660000005</IDValue> </ProductIdentifier> <Barcode> <BarcodeType>02</BarcodeType> <PositionOnProduct>00</PositionOnProduct> </Barcode> <DescriptiveDetail> <ProductComposition>00</ProductComposition> <ProductForm>BC</ProductForm> <Measure> <MeasureType>01</MeasureType> <Measurement>286</Measurement> <MeasureUnitCode>mm</MeasureUnitCode> </Measure> <Measure> <MeasureType>02</MeasureType> <Measurement>222</Measurement> <MeasureUnitCode>mm</MeasureUnitCode> </Measure> </DescriptiveDetail> </Product> </article> <article> <Product> <RecordReference>9782732478470</RecordReference> <NotificationType>03</NotificationType> <ProductIdentifier> <ProductIDType>01</ProductIDType> <IDValue>869191</IDValue> </ProductIdentifier> <ProductIdentifierttt> <ProductIDType>03</ProductIDType> <IDValue>9782732478470</IDValue> </ProductIdentifierttt> <ProductIdentifiert> <ProductIDType>15</ProductIDType> <IDValue>9782732478470</IDValue> </ProductIdentifiert> <ProductIdentifier sourcename="DILICOM" sourcetype="04"> <ProductIDType>31</ProductIDType> <IDValue>FRBNF451998660000005</IDValue> </ProductIdentifier> <Barcode> <BarcodeType>02</BarcodeType> <PositionOnProduct>00</PositionOnProduct> </Barcode> <DescriptiveDetail> <ProductComposition>00</ProductComposition> <ProductForm>BC</ProductForm> <Measure> <MeasureType>01</MeasureType> <Measurement>286</Measurement> <MeasureUnitCode>mm</MeasureUnitCode> </Measure> <Measure> <MeasureType>01</MeasureType> <Measurement>111</Measurement> <MeasureUnitCode>cm</MeasureUnitCode> </Measure> </DescriptiveDetail> </Product> </article> </root>
MonXML est un xmlDocument <Description="exemple"> = XMLOuvre(fRepExe()+"\exemple.xml") UnArticle est un xmlNoeud,Description="exemple.root.article" Measure est un xmlNoeud,Description="exemple.root.article.Product.DescriptiveDetail.Measure" POUR TOUT UnArticle de MonXML.root Trace(UnArticle.Product.RecordReference) Trace(UnArticle.Product.NotificationType) POUR TOUT Measure de UnArticle.Product.DescriptiveDetail SUR Measure Trace(Measure.Measurement) Trace(Measure.MeasureType) Trace(Measure.MeasureUnitCode) FIN FIN
Résultat
9782732478470 03 286 01 mm 222 02 mm 9782732478470 03 286 01 mm 111 01 cm
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 231 messages |
|
| Posté le 05 mars 2019 - 09:08 |
Salut Marcel et Philippe, En premier lieu, je vous remercie grandement pour votre aide. Pour le code, je me douté un peu que se n'était pas très propre et quand je regarde le code de Philippe c'est un peu comme manipuler du json. Je vais tester cela Jeudi matin (Planning pour faire du XML) et vous tiens au courant. Bonne journée à vous.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
| Posté le 05 mars 2019 - 09:13 |
Le 05/03/2019 à 06:09, Philippe SB a écrit :
Bonjour, Je persiste et signe en disant que mon code est plus claire que le votre...  . Gérer le XML de cette manière, ça ne se fait plus. -- Cordialement, Philippe SAINT-BERTIN Bonjour Monsieur Saint-Bertin si c'est pour moi et je le suppose Peut-être ... mais généralement je travaille sur des XSD et le principe de prendre votre fichier et de le mettre dans l'analyse J'ai un fichier XML... que je veux bien vous fournir pour voir Il va me générer 50 ou 60 fichiers XML dans mon analyses je l'ai fait il y a des années Il est parti dans des Salaires... départ majoration... diminution saisie etc etc Je fais des XML depuis 1998 avec des actes de laboratoires et autres Chacun sa manière de faire je pars dans les fils et je lis tout dans certains cas je n'ai pas de majorations , d'autres pas...de saisies etc etc je ne tiens pas du tout à poluer mon analyses avec des fichiers inutiles J'aurais maximum 200 ou 300 salaires par XML Votre remarque est un peu blessante Je ne sais pas si vous avez fait du SEPA ... je vous défie de prendre un fichier SEPA de retour et de le mettre dans votre analyse .. je suis juste occupé à Je me suis juste amusé à l'instant de le faire ... plus de 30 fichiers différents... rien que pour cette partie ... il c'est amusé à me faire une dizaine de fichies ... donc Alors que dans l'entête il me suffit de lire le nombre et de faire .... etc <TxInfAndSts> <StsId>SDC219025T023278</StsId> <OrgnlInstrId>14261</OrgnlInstrId> <OrgnlEndToEndId>14261</OrgnlEndToEndId> <TxSts>ACSC</TxSts> <StsRsnInf> <Rsn> <Cd>SL02</Cd> </Rsn> </StsRsnInf> <OrgnlTxRef> <Amt> <InstdAmt Ccy="EUR">14.00</InstdAmt> </Amt> <IntrBkSttlmDt>2019-02-01</IntrBkSttlmDt> <ReqdColltnDt>2019-01-25</ReqdColltnDt> <CdtrSchmeId> <Id> <PrvtId> <Othr> <Id>LU57ZZZ0000000000000000760</Id> <SchmeNm> <Prtry>SEPA</Prtry> </SchmeNm> </Othr> </PrvtId> </Id> </CdtrSchmeId> <MndtRltdInf> <MndtId>14261</MndtId> <DtOfSgntr>2019-01-15</DtOfSgntr> </MndtRltdInf> <RmtInf> <Ustrd>NGL-SNEP 01/2019</Ustrd> </RmtInf> en tout cas je vous remercie de votre commentaire. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 05 mars 2019 - 10:36 |
@Marcel Feiereisen: Ce n'était absolument pas dirigé contre vous, je dis juste qu’aujourd’hui il y a des moyens plus propres et plus efficaces de gérer le xml.
Oui j'ai fait du SEPA de la manière dont je l'ai montré. Il n'est nullement besoin d'importer le fichier xml dans l'analyse pour le traiter. Il suffit tout simplement de regarder dans le treeview du projet, il y a un item qui s'appelle "Descriptions XML et XSD" en version 23 et "Descriptions Externes" en 24. Cela permet d'importer toute la structure d'un fichier XML ou XSD et de profiter de la complétion automatique. Ma méthode ne pollue pas l'analyse et simplifie tout simplement le développement. Si vous aviez pris le temps de lire le code que j'avais posté et faire une toute petite recherche dans l'aide vous ne m'auriez pas répondu cela.
Ensuite je suis d'accord que chacun sa méthode pour le développement. Je suis plutôt du genre à utiliser les fonctionnalités les plus simples et rapides plutôt qu'à me prendre la tête à lire tout un fichier xml sans jamais savoir où j'en suis.
De temps en temps, il est judicieux de regarder les nouveautés et les évolutions d'un langage. On en apprend tous les jours et moi le premier. Ne pouvant uploader d'image pour "une raison inconnue selon le forum", je vous laisse jeter un oeil sur ces fonctionnalités qui peuvent vous faire gagner un temps précieux.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
| Posté le 05 mars 2019 - 11:20 |
Le 05/03/2019 à 09:36, Philippe SB a écrit :
@Marcel Feiereisen: Ce n'était absolument pas dirigé contre vous, je dis juste qu’aujourd’hui il y a des moyens plus propres et plus efficaces de gérer le xml.
Oui j'ai fait du SEPA de la manière dont je l'ai montré. Il n'est nullement besoin d'importer le fichier xml dans l'analyse pour le traiter. Il suffit tout simplement de regarder dans le treeview du projet, il y a un item qui s'appelle "Descriptions XML et XSD" en version 23 et "Descriptions Externes" en 24. Cela permet d'importer toute la structure d'un fichier XML ou XSD et de profiter de la complétion automatique. Ma méthode ne pollue pas l'analyse et simplifie tout simplement le développement. Si vous aviez pris le temps de lire le code que j'avais posté et faire une toute petite recherche dans l'aide vous ne m'auriez pas répondu cela.
Ensuite je suis d'accord que chacun sa méthode pour le développement. Je suis plutôt du genre à utiliser les fonctionnalités les plus simples et rapides plutôt qu'à me prendre la tête à lire tout un fichier xml sans jamais savoir où j'en suis. De temps en temps, il est judicieux de regarder les nouveautés et les évolutions d'un langage. On en apprend tous les jours et moi le premier. Ne pouvant uploader d'image pour "une raison inconnue selon le forum", je vous laisse jeter un oeil sur ces fonctionnalités qui peuvent vous faire gagner un temps précieux.
-- Cordialement,
Philippe SAINT-BERTIN Pour créer les XML d'accord je le fais aussi IMPORTER le XSD et j'ai bien l'implémentation inutile de me dire cela je parle de la lecture retour ou lecture d'un fichier XML et c'était cela le départ de la conversation importer UN XML est dangereux car il peut manquer beaucoup d'option... et si l'option n'est pas obligatoire ... vous risquez un jour d'avoir un retour avec celle-ci. Un XSD... je dois avoir importer des dizaines... Le problème avec WINDEV ... c'est la validation qui est bien souvent incorrect chez WIndev... mais quand je le passe sur des sites administratifs... c'est faux j'ai déjà eu des disputes avec WIndev qui je dois dire à chaque fois ont répondus et des fois dans mes attentes. Je lis aussi les nouveautés, et concernant les XML la seule vrai de la dernière et encore nouveauté c'est pouvoir soit disant lire des gros fichiers j'ai des fichiers qui me font plusieurs dizaines de MB si pas plus Et si vous faites du SEPA il vous suffit de lire ..pour le retour le Premier DtldNbOfTxs qui vous dira .. chez moi cela peut atteindre 3000 ou 4000 et de faire des tableaux avec la référence le montant le code de retour en une cinquante de ligne j'ai tout pris et pas d'erreur depuis des ... compris vérification nom du fichier etc il est inutile d'employer le XSD pour écrire le fichier là vous avez raison il est pratiquement impossible de le faire sans le pain.008.001.02.xsd je crois que c'est le dernier là nous sommes d'accord
BAV et merci de cet échange |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 05 mars 2019 - 11:38 |
Je suis d'accord que pour la validation du xml avec le xsd c'est à s'arracher les cheveux avec Windev. J'en ai d'ailleurs perdus quelques uns. J'ai fini par comprendre qu'il fallait construire le xml dans le même ordre que le xsd pour que la validation se fasse, ce qui à mon sens n'est pas logique mais bon. Il est évident que s'il y a un xsd, il est préférable de l'importer en lieu du xml cependant, lorsqu'on n'a que ça on fait avec
Pour en revenir à l'exemple présent, je trouve que la lecture est tout de même plus simple avec une variable de type XMLDocument, mais là c'est plus une question d'habitude..
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
| Posté le 05 mars 2019 - 12:13 |
Le 05/03/2019 à 10:38, Philippe SB a écrit :
Je suis d'accord que pour la validation du xml avec le xsd c'est à s'arracher les cheveux avec Windev. J'en ai d'ailleurs perdus quelques uns. J'ai fini par comprendre qu'il fallait construire le xml dans le même ordre que le xsd pour que la validation se fasse, ce qui à mon sens n'est pas logique mais bon. Il est évident que s'il y a un xsd, il est préférable de l'importer en lieu du xml cependant, lorsqu'on n'a que ça on fait avec
Pour en revenir à l'exemple présent, je trouve que la lecture est tout de même plus simple avec une variable de type XMLDocument, mais là c'est plus une question d'habitude..
-- Cordialement,
Philippe SAINT-BERTIN
Au plaisir ... et grand merci pour ce débat |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 231 messages |
|
| Posté le 05 mars 2019 - 14:06 |
Sachant que l'on va me fournir un fichier XML de plus de 1go, est-ce que cela a-t-il une importance sur la façon de lire le fichier ?
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 05 mars 2019 - 15:08 |
Pour les fichiers volumineux, voir la fonction xmlLecteur
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
| Posté le 05 mars 2019 - 16:34 |
Le 05/03/2019 à 13:06, "Stéphane D." a écrit :
Sachant que l'on va me fournir un fichier XML de plus de 1go, est-ce que cela a-t-il une importance sur la façon de lire le fichier ?
-- Stéphane. Normalement c'est comme du Texte donc ... J'ai eu beaucoup plus pire quand reprise des données Xmlextraitchaine( .... etc) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 231 messages |
|
| Posté le 07 mars 2019 - 18:03 |
Salut Marcel et Philippe, Comme je vous ai dit j'allais faire du XML ce Jeudi, donc voilà une partie du code j'ai fait :
i est un entier=1 j est un entier=1 MonXML est un xmlDocument <Description="ONIX"> = XMLOuvre("c:\Partage_GS\ONIX.xml") xOnixMess est un xmlNoeud,Description="ONIXMessage.Product"
Measure est un xmlNoeud,Description="Product.DescriptiveDetail.Measure" ProductIdentifier est un xmlNoeud,Description="Product.ProductIdentifier"
POUR TOUT xOnixMess de MonXML.ONIXMessage
SI MonXML.ONIXMessage.Product[i].RecordReference = "9782020490412" ALORS Trace(MonXML.ONIXMessage.Product[i].RecordReference) Trace(MonXML.ONIXMessage.Product[i].NotificationType) j=1 POUR TOUT ProductIdentifier de MonXML.ONIXMessage.Product[i] SUR ProductIdentifier Trace(MonXML.ONIXMessage.Product[i].ProductIdentifier[j].ProductIDType) Trace(MonXML.ONIXMessage.Product[i].ProductIdentifier[j].IDValue) j++ FIN
Trace(MonXML.ONIXMessage.Product[i].Barcode.BarcodeType) Trace(MonXML.ONIXMessage.Product[i].Barcode.PositionOnProduct)
Trace(MonXML.ONIXMessage.Product[i].DescriptiveDetail.ProductComposition) Trace(MonXML.ONIXMessage.Product[i].DescriptiveDetail.ProductForm) j=1 POUR TOUT Measure de MonXML.ONIXMessage.Product[i].DescriptiveDetail SUR Measure Trace(MonXML.ONIXMessage.Product[i].DescriptiveDetail.Measure[j].MeasureType) Trace(MonXML.ONIXMessage.Product[i].DescriptiveDetail.Measure[j].Measurement) Trace(MonXML.ONIXMessage.Product[i].DescriptiveDetail.Measure[j].MeasureUnitCode) j++ FIN RETOUR FIN i++ FIN
Pouvez vous me dire si cela est propre ou si il y aurait des truc à ajouter. J'espère aussi que se bout de code pourrait aider quelqu'un. Merci d'avance de vos réponse.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 682 messages |
|
| Posté le 08 mars 2019 - 06:52 |
Bonjour,
Tu n'as pas besoin d'utiliser d'indice i et j dans ton pour tout
xOnixMess représente déjà un noeud de ton fichier xml, tu peux donc l'utiliser en tant que tel. C'est exactement la même chose pour les autres noeuds. Toutes ces variables sont mises à jour automatiquement lors de la boucle.
Ton code devient alors:
MonXML est un xmlDocument <Description="ONIX"> = XMLOuvre("c:\Partage_GS\ONIX.xml") xOnixMess est un xmlNoeud,Description="exemple.root.article.Product"
Measure est un xmlNoeud,Description="Product.DescriptiveDetail.Measure" ProductIdentifier est un xmlNoeud,Description="Product.ProductIdentifier" POUR TOUT xOnixMess de MonXML.ONIXMessage SI xOnixMess.RecordReference = "9782020490412" ALORS Trace(xOnixMess.RecordReference) Trace(xOnixMess.NotificationType) POUR TOUT ProductIdentifier de xOnixMess SUR ProductIdentifier Trace(ProductIdentifier.ProductIDType) Trace(ProductIdentifier.IDValue) FIN Trace(xOnixMess.Barcode.BarcodeType) Trace(xOnixMess.Barcode.PositionOnProduct) Trace(xOnixMess.DescriptiveDetail.ProductComposition) Trace(xOnixMess.DescriptiveDetail.ProductForm) POUR TOUT Measure de xOnixMess.DescriptiveDetail SUR Measure Trace(Measure.MeasureType) Trace(Measure.Measurement) Trace(Measure.MeasureUnitCode) FIN RETOUR FIN FIN
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |