|
Started by LC, Apr., 25 2018 7:14 PM - 10 replies |
| |
| | | |
|
| |
Registered member 629 messages Popularité : +0 (16 votes) |
|
Posted on April, 25 2018 - 7:14 PM |
Bonjour à tous, je suis un peu perdu dans les noeuds et les balises ... je souhaiterais ça: <Enveloppe> <Parametres> <Version V="2"></Version> <TypFic V="XXX"></TypFic> <NomFic V="YYY.XML"></NomFic> </Parametres> </Enveloppe> je code donc :
XMLDocument("DocXML") XMLAjouteFils("DocXML", "Enveloppe", "", Vrai) XMLAjouteFils("DocXML", "Parametres", "", Vrai) XMLAjouteFils("DocXML", "Version", "", Vrai) XMLAjouteAttribut("DocXML", "V","2",Faux) XMLAjouteFils("DocXML", "TypFic", "", Vrai) XMLAjouteAttribut("DocXML", "V","XXX") XMLAjouteFils("DocXML", "NomFic", "", Vrai) XMLAjouteAttribut("DocXML", "V","YYY") le problème c'est que "Version" ne se "ferme" pas avant "TypeFic" mais à la fin en arborescence comme toutes les balises, ou est le pb dans mon code ? |
| |
| |
| | | |
|
| | |
| |
Registered member 281 messages Popularité : +24 (26 votes) |
|
Posted on April, 25 2018 - 10:44 PM |
Bonsoir,
Il est préférable de passer par une variable de type XMLDocument/XMLNoeud.
XmlDoc est un xmlDocument xmlNoeud est un xmlNoeud dynamique
XmlDoc.Enveloppe.Parametres = ""
xmlNoeud = allouer un xmlNoeud xmlNoeud..Nom = "Version" xmlNoeud:V..Valeur = "2"
Ajoute(XmlDoc.Enveloppe.Parametres, xmlNoeud)
xmlNoeud = allouer un xmlNoeud xmlNoeud..Nom = "TypFic" xmlNoeud:V..Valeur = "XXX"
Ajoute(XmlDoc.Enveloppe.Parametres, xmlNoeud)
xmlNoeud = allouer un xmlNoeud xmlNoeud..Nom = "NomFic" xmlNoeud:V..Valeur = "YYY.XML"
Ajoute(XmlDoc.Enveloppe.Parametres, xmlNoeud)
ou encore plus simple
XmlDoc est un xmlDocument
XmlDoc.Enveloppe.Parametres = "" XmlDoc.Enveloppe.Parametres.Version:V..Valeur = "2" XmlDoc.Enveloppe.Parametres.TypFic:V..Valeur = "XXX" XmlDoc.Enveloppe.Parametres.NomFic:V..Valeur = "YYY.XML" Message modified, April, 25 2018 - 10:47 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 629 messages Popularité : +0 (16 votes) |
|
Posted on April, 26 2018 - 10:00 AM |
Merci pour ta réponse, mais les instructions xml... ne fonctionnent pas ? |
| |
| |
| | | |
|
| | |
| |
Registered member 629 messages Popularité : +0 (16 votes) |
|
Posted on April, 26 2018 - 11:44 AM |
je n'obtins pas ce que je voulais ... j'obtiens : <Version V="2" /> au lieu de : <Version V="2"></Version> |
| |
| |
| | | |
|
| | |
| |
Registered member 281 messages Popularité : +24 (26 votes) |
|
Posted on April, 26 2018 - 11:58 AM |
En terme XML <Version V="2" /> c'est identique à <Version V="2"></Version>.
Il n'y a rien dans ta balise <Version></Version> donc inutile pour lui de la générée totalement. |
| |
| |
| | | |
|
| | |
| |
Registered member 629 messages Popularité : +0 (16 votes) |
|
Posted on April, 26 2018 - 12:04 PM |
ok je te remercie mais je n'y arrive toujours pas, il y a des 2 points qui me posent problème ... j'ai besoin de ça : <?xml version="1.0" encoding="ISO-8859-1"?> <n:PES_Aller Id="EXPORTFACTURES" xmlns:n="http://www.minefi.gouv.fr/cp/helios/pes_v2/Rev0/aller"> <Enveloppe> <Parametres> <Version V="2"></Version> <TypFic V="PESALR1"></TypFic> <NomFic V="EXPORTFACTURES.XML"></NomFic> </Parametres> je n'arrive pas gérer la deuxième ligne, pfuu .. |
| |
| |
| | | |
|
| | |
| |
Registered member 629 messages Popularité : +0 (16 votes) |
|
Posted on April, 26 2018 - 6:20 PM |
j'ai réussi mais en trichant avec une variable normale chaine (Txtxml) que je transforme à la fin en xml : xmlDoc est un xmlDocument = XMLOuvre(TxtXml, depuisChaîne) XMLSauve(xmlDoc, "test.xml", XMLDocumentDéfaut) mais du coup, aucune utilisation des possibilités xml de windev ... un peu dommage ! comment dois je faire pour utiliser les possibilités de windev ? |
| |
| |
| | | |
|
| | |
| |
Registered member 2,574 messages Popularité : +222 (260 votes) |
|
Posted on April, 27 2018 - 9:08 AM |
Bonjour,
Windev ne sait pas gérer ce type de balises. Tu peux donc faire de la sorte pour utiliser au mieux les fonctionnalités windev: 1- tu importes la description xml dans Windev 2- le code
MonXML est un xmlDocument <Description="modele"> NameSpace est un xmlNamespace
NameSpace..Nom = "n" NameSpace..URI = "http://www.minefi.gouv.fr/cp/helios/pes_v2/Rev0/aller" MonXML.PES_Aller:Id = "ExportFactures" Ajoute(MonXML.PES_Aller..NamespaceDéclaré,NameSpace)
MonXML.PES_Aller.Enveloppe.Parametres.NomFic:V = "EXPORTFACTURES.XML" MonXML.PES_Aller.Enveloppe.Parametres.TypFic:V = "PESALR1" MonXML.PES_Aller.Enveloppe.Parametres.Version:V = "2"
XMLSauve(MonXML,fRepExe()+"\test.xml",XMLMiseEnForme)
Xml est une chaîne = Remplace(fChargeTexte(fRepExe()+"\test.xml"),"PES_Aller","n:PES_Aller") fSauveTexte(fRepExe()+"\test.xml",Xml)
C'est une bidouille mais tu n'as pas le choix pour le moment. Peut-être y'aura-t-il une évolution un jour ???
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Registered member 629 messages Popularité : +0 (16 votes) |
|
Posted on April, 27 2018 - 10:07 AM |
ouais j'ai bien vu ... hélas ! merci pour ta réponse. |
| |
| |
| | | |
|
| | |
| |
Registered member 962 messages Popularité : +183 (185 votes) |
|
Posted on April, 28 2018 - 12:30 AM |
hello, voici une solution ( il y a surement plus simple) :
XmlDoc est un WL.XMLDocument XmlDoc2 est un WL.XMLDocument Xml_Names est un xmlNamespace Xml_Noeud est un xmlNoeud dynamique
Xml_Noeud = XmlDoc.PES_Aller
Xml_Names.Nom = "n" Xml_Names.URI ="http://www.minefi.gouv.fr/cp/helio/pes_v2/Rev0/aller" XmlDoc.PES_Aller="" XmlDoc.PES_Aller:id="EXPORTFACTURES" Ajoute(XmlDoc.PES_Aller..NamespaceDéclaré, Xml_Names) XmlDoc.PES_Aller..Namespace = Xml_Names Ajoute(Xml_Noeud..NamespaceDéclaré, Xml_Names) SourceXML est une chaîne = XMLConstruitChaîne(XmlDoc)
XmlDoc2.Enveloppe.Parametres = "" XmlDoc2.Enveloppe.Parametres.Version:V..Valeur = "2" XmlDoc2.Enveloppe.Parametres.TypFic:V..Valeur = "XXX" XmlDoc2.Enveloppe.Parametres.NomFic:V..Valeur = "YYY.XML" SourceXML2 est une chaîne = XMLConstruitChaîne(XmlDoc2) Res est un booléen = XMLDocument("MonXml", SourceXML) Res = XMLDocument("MonXml2",SourceXML2) XMLInsèreDocument("MonXml","MonXml2") XMLRacine("MonXml") SourceXML = XMLConstruitChaîne("MonXml",XMLDocumentDéfaut,XMLEncodageIso8859_1) Trace(SourceXML) fSauveTexte(fRepExe() + ["\"] + "monXml.xml",SourceXML) XMLTermine("MonXml")
et voici le résultat :
<?xml version="1.0" encoding="ISO-8859-1"?> <n:PES_Aller xmlns:n="http://www.minefi.gouv.fr/cp/helio/pes_v2/Rev0/aller" id="EXPORTFACTURES"> <Enveloppe> <Parametres> <Version V="2"/> <TypFic V="XXX"/> <NomFic V="YYY.XML"/> </Parametres> </Enveloppe> </n:PES_Aller>
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Registered member 2,574 messages Popularité : +222 (260 votes) |
|
Posted on April, 30 2018 - 9:17 AM |
Merci à Jurassic Pork. Je n'avais jamais pensé à mettre le namespace du nœud à jour. Comme quoi plusieurs cerveaux valent mieux qu'un...
Du coup mon code fonctionne parfaitement et utilise toutes les fonctionnalités du xml Windev. Voici le code complètement fonctionnel:
MonXML est un xmlDocument <Description="modele"> NameSpace est un xmlNamespace
NameSpace..Nom = "n" NameSpace..URI = "http://www.minefi.gouv.fr/cp/helios/pes_v2/Rev0/aller" MonXML.PES_Aller:Id = "ExportFactures" Ajoute(MonXML.PES_Aller..NamespaceDéclaré,NameSpace) MonXML.PES_Aller..Namespace = NameSpace
MonXML.PES_Aller.Enveloppe.Parametres.NomFic:V = "EXPORTFACTURES.XML" MonXML.PES_Aller.Enveloppe.Parametres.TypFic:V = "PESALR1" MonXML.PES_Aller.Enveloppe.Parametres.Version:V = "2"
XMLSauve(MonXML,fRepExe()+"\test.xml",XMLMiseEnForme)
Le résultat
<?xml version="1.0" encoding="UTF-8"?> <n:PES_Aller xmlns:n="http://www.minefi.gouv.fr/cp/helios/pes_v2/Rev0/aller" Id="ExportFactures"> <Enveloppe> <Parametres> <NomFic V="EXPORTFACTURES.XML"/> <TypFic V="PESALR1"/> <Version V="2"/> </Parametres> </Enveloppe> </n:PES_Aller>
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | | | |
| | |
|