Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD55] et XML

5 réponses
Avatar
Jacques TREPP
Bonjour,
peut-on sous windev 5.5 générer des fichiers Xml ?

Merci de m'éclairer

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)

5 réponses

Avatar
Romain PETIT
Jacques TREPP avait soumis l'idée :
Bonjour,
peut-on sous windev 5.5 générer des fichiers Xml ?



Bien sûr, un fichier XML est un simple fichier ASCII structuré.
Tu peux le créer :
- Soit en gérant toi-même la création du fichier (avec une classe,
c'est mieux) : long et fastidieux, tu vas réinventer la roue
- Soit en utilisant les API MS

Cf :
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/33f6df050191eb86/a6c2618029c82fa0#a6c2618029c82fa0

(attention, les versions ont dûes être mises à jour depuis ce post)

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Jacques TREPP
"Romain PETIT" a écrit dans le message de
news:
Jacques TREPP avait soumis l'idée :
Bonjour,
peut-on sous windev 5.5 générer des fichiers Xml ?



Bien sûr, un fichier XML est un simple fichier ASCII structuré.
Tu peux le créer :
- Soit en gérant toi-même la création du fichier (avec une classe, c'est
mieux) : long et fastidieux, tu vas réinventer la roue
- Soit en utilisant les API MS

Cf :
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/33f6df050191eb86/a6c2618029c82fa0#a6c2618029c82fa0

(attention, les versions ont dûes être mises à jour depuis ce post)

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)





Merci Romain,
je n'ai pas encore l'accord, mais je me renseigne. ;)

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Romain PETIT
Jacques TREPP vient de nous annoncer :
"Romain PETIT" a écrit dans le message de
news:
Jacques TREPP avait soumis l'idée :
Bonjour,
peut-on sous windev 5.5 générer des fichiers Xml ?



Bien sûr, un fichier XML est un simple fichier ASCII structuré.
Tu peux le créer :
- Soit en gérant toi-même la création du fichier (avec une classe, c'est
mieux) : long et fastidieux, tu vas réinventer la roue
- Soit en utilisant les API MS

Cf :
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/33f6df050191eb86/a6c2618029c82fa0#a6c2618029c82fa0

(attention, les versions ont dûes être mises à jour depuis ce post)

A+

-- Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)





Merci Romain,
je n'ai pas encore l'accord, mais je me renseigne. ;)



Je viens de tester en 5.5, le code ci-dessous fonctionne (sur mon
poste)
(il y avait une lettre "e" en trop dans
createNode("elemente","MaRacine","")

*********************
oXML est un objet OLE dynamique
oXMLNode est un objet OLE dynamique
oXMLRoot est un objet OLE dynamique

oXML = allouer un objet automation "Msxml2.DOMDocument"
// mode asynchrone
oXML>>async = OLEFalse
eNode_Element est un entier = 1

oXMLRoot = oXML>>createNode(eNode_Element,"MaRacine","")
//ou bien avec le mot clé "element" :
oXML>>createNode("element","MaRacine","")
oXML>>appendChild(oXMLRoot)
oXMLRoot = oXML>>documentElement()
oXMLNode = oXML>>createNode(eNode_Element, "MonNoeud", "")

oXMLNode>>Text = "LeTexteQueJeVeux"
oXMLRoot>>appendChild(oXMLNode)
oXML>>save("c:test.xml");
libérer oXML
libérer oXMLRoot
libérer oXMLNode
**********
Donne le fichier c:test.xml :

<MaRacine><MonNoeud>LeTexteQueJeVeux</MonNoeud></MaRacine>



A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
JB
Le Fri, 30 May 2008 12:51:18 +0200, Romain PETIT a
écrit:

Jacques TREPP vient de nous annoncer :
"Romain PETIT" a écrit dans le message de
news:
Jacques TREPP avait soumis l'idée :
Bonjour,
peut-on sous windev 5.5 générer des fichiers Xml ?



Bien sûr, un fichier XML est un simple fichier ASCII structuré.
Tu peux le créer :
- Soit en gérant toi-même la création du fichier (avec une classe,
c'est mieux) : long et fastidieux, tu vas réinventer la roue
- Soit en utilisant les API MS

Cf :
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/33f6df050191eb86/a6c2618029c82fa0#a6c2618029c82fa0

(attention, les versions ont dûes être mises à jour depuis ce post)

A+

-- Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)





Merci Romain,
je n'ai pas encore l'accord, mais je me renseigne. ;)



Je viens de tester en 5.5, le code ci-dessous fonctionne (sur mon poste)
(il y avait une lettre "e" en trop dans
createNode("elemente","MaRacine","")

*********************
oXML est un objet OLE dynamique
oXMLNode est un objet OLE dynamique
oXMLRoot est un objet OLE dynamique

oXML = allouer un objet automation "Msxml2.DOMDocument"
// mode asynchrone
oXML>>async = OLEFalse
eNode_Element est un entier = 1

oXMLRoot = oXML>>createNode(eNode_Element,"MaRacine","")
//ou bien avec le mot clé "element" :
oXML>>createNode("element","MaRacine","")
oXML>>appendChild(oXMLRoot)
oXMLRoot = oXML>>documentElement()
oXMLNode = oXML>>createNode(eNode_Element, "MonNoeud", "")

oXMLNode>>Text = "LeTexteQueJeVeux"
oXMLRoot>>appendChild(oXMLNode)
oXML>>save("c:test.xml");
libérer oXML
libérer oXMLRoot
libérer oXMLNode
**********
Donne le fichier c:test.xml :

<MaRacine><MonNoeud>LeTexteQueJeVeux</MonNoeud></MaRacine>



A+



Bonjour,

Dans le cas d'XML simple , avec 5 fonctions de bas niveau qui ajoutent des
chaines on peut faire (NB c'est du perl , mais
cela se comprend ...)

Haut niveau:


sub ouvficxml {
$ficxml='<?xml version="1.0" encoding="windows-1252"?>'."n";
debelem("evenementsServeurActes");
att("acquittementAttendu="non"");
debelem("enteteMessage");
element("identifiantMessage","PMSI");
element("dateHeureProduction",datjxml());
debelem("emetteur");
debelem("agents");
debelem("agent");
element("code","AMOR");
element("libelle","Diffuseur AMOR SCRIM");
finelem(); #agent
finelem(); #agents
finelem(); #emetteur
finelem(); #entetemessage
};

Un extrait du bas niveau:

sub debelem {
ferouvert();
$tabs++; #009
$nom=$_[0];
$ficxml.=' 'x$tabs."<$nom"; #009
push @elem,$nom;
$ouvert=1;
};
sub att {
$ficxml.="n".' 'x$tabs."$_[0]"; #009
};
sub finelem {
ferouvert();
$nom=pop @elem;
$ficxml.=' 'x$tabs."</".$nom.">n"; #009
$tabs--; #009
}
sub element {
ferouvert();
$tabs++; #009
$nom=$_[0];
$ficxml.=' 'x$tabs."<$nom>$_[1]</$nom>n"; #009
$tabs--; #009
#009 push @elem,$nom;
#009 finelem;
}
sub elementvide {
ferouvert();
$ficxml.=' 'x$tabs."<$_[0]/>n"; #009
}
sub ferouvert { $ouvert and do {$ficxml.=">n";$ouvert=0;};};
#
Avatar
Jacques TREPP
Merci à tous !
et bon week-end ensoleillé (?)



--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)