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

Langage Delphi Discussion :

Exemple d'utilisation de XMLDocument [FAQ]


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut Exemple d'utilisation de XMLDocument
    bonjour;

    Je souhaite utiliser XMLDocument depuis DELPHI2005 dans un projet Win32 pour écrire dans un fichier XML.
    je voudrais savoir si quelqu'un a un exemple simple d'utilisation de XMLDocument (car ceux que j'ai trouvé sont plutot complexes pour mon cas). Je souhaite juste écrire un XML du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            <Version XML>
            <Livre>
               <nomAuteur> Zola </nomAuteur>
               <titreLivre> Gervaise </titreLivre>
            </Livre>
    Quelqu'un peut-il m'aider?

  2. #2
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    L'écriture d'un fichier Xml n'est pas compliquée en soi...

    Jette un oeil dans les tutoriels de Delphi, il y a un exemple qui traite de XMl avec Delphi 6. La syntaxe est identique.

    J'ai appris avec ça

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut
    Salut merci our le conseil. Je crois que j'ai fais tous les exemples d'internet (je plaisante évidemment) mais je n'ai pas compris (je débute en programmation objet). Pourtant il y a pas longtemps j'ai généré des fichier XML en C# avec XMLTextWriter et je trouve que cette classe et plus simple. Ceci étant dit aujourd'hui j'ai réussi à écrire du XML avec TXMLDocument mais le résultat ne me convient pas (je veux la meme forme que je t'ai montré dans mon premier message).
    Je t'invite à regarder mon source (issu d'internet):

    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
     
    procedure TForm5.Button1Click(Sender: TObject);
     
    var
       stage,stagiaires,stagiaire : IXMLNode;  //Noeuds de référence
     
    begin
       XMLDocument1.Create('C:\\Documents and Settings\\PDS\\Mes documents\\fiche.xml');
       XMLDocument1.Version:='1.0';
       XMLDocument1.Encoding:='ISO-8859-1';
    //Création du premier noeud 'stages' et initialisation de DocumentElement
       XMLDocument1.DocumentElement := XMLDocument1.CreateElement('stages','');
     
    //Création du premier noeud enfant, représentant le premier stage
      stage := XMLDocument1.DocumentElement.AddChild('stage');
     
    //Création des attributs de ce stage
      stage.Attributes['nom'] := 'WORD 2000 Initiation';
      stage.Attributes['date'] := '14/06/2001';
     
    //Création du noeud enfant de ce stage : stagaires
      stagiaires := stage.AddChild('stagiaires');
     
    //Création de chaque stagiaire
      stagiaire := stagiaires.AddChild('stagiaire');
      stagiaire.Attributes['nom'] := 'MAGIC Jordan';
      stagiaire.Attributes['age'] := '35';
     
    //2è stagiaire
      stagiaire := stagiaires.AddChild('stagiaire');
      stagiaire.Attributes['nom'] := 'ESSONCHA Jean-Roland';
      stagiaire.Attributes['age'] := '38';
     
    //Stage suivant
      stage := XMLDocument1.DocumentElement.AddChild('stage');
     
    //Création des attributs de ce stage
      stage.Attributes['nom'] := 'SQL SERVER 7 Administration';
      stage.Attributes['date'] := '11/06/2001';
     
       XMLDocument1.SaveToFile('C:\\Documents and Settings\\PDS\\Mes documents\\fiche.xml');
       XMLDocument1.Free;
     
    end;
    end.
    et voici le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      <?xml version="1.0" encoding="ISO-8859-1" ?> 
    - <stages>
    - <stage nom="WORD 2000 Initiation" date="14/06/2001">
    - <stagiaires>
      <stagiaire nom="MAGIC Jordan" age="35" /> 
      <stagiaire nom="ESSONCHA Jean-Roland" age="38" /> 
      </stagiaires>
      </stage>
      <stage nom="SQL SERVER 7 Administration" date="11/06/2001" /> 
      </stages>
    pas génial!!!
    Peux tu me dire ce qui ne va pas?
    Merci

  4. #4
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Tu crées des attributs au lieu de donner la valeur du noeud.

    Voici ce que j'ai fait rapidement, en me basant sur ton code xml.
    Le seul problème de ton fichier xml, c'est la racine. Tu ne peux pas avoir plusieurs racines :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <livre>
      <nomAuteur>Zola</nomAuteur>
      <Titre>Gervaise</Titre>
    </livre>
    <livre>
      <nomAuteur>Hugo</nomAuteur>
      <Titre>Le tour du monde en 80 jours</Titre>
    </livre>
    Le document n'est pas valide. Dans mon code, j'ai donc ajouté la racine 'Bibliothèque'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    var
      livre,auteur,titre: IXmlNode;
    begin
      XmlDoc.DocumentElement := XmlDoc.CreateElement('Bibliotheque',''); //création de la racine;
     livre:= XmlDoc.DocumentElement.AddChild('Livre'); //création du noeud livre
      auteur := livre.AddChild('nomAuteur'); //création du noeud nomAuteur
      auteur.NodeValue := 'Zola'; //valeur du noeud
      titre := livre.AddChild('Titre');
      titre.NodeValue := 'Gervaise';
      XmlDoc.SaveToFile('c:\XmlTest.xml');
    end;
    Le code peut être optimisé, je l'ai fait de manière à ce que ça soit simple à comprendre.
    J'espère que ça t'aidera [/code]

  5. #5
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut
    Ayé ça marche!!!
    merci Big ton exemple m'a beaucoup aidé
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/06/2006, 10h43
  2. Besoin d'exemple d'utilisation d'un MouseListener
    Par hbzied dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/04/2006, 11h27
  3. [XML]Exemples d'utilisation
    Par le Daoud dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/01/2006, 18h04
  4. Exemple d'utilisation de SOAP avec C++
    Par jlassira dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 04/01/2006, 08h42
  5. Recherche des exemple d'utilisation
    Par lemme dans le forum Merise
    Réponses: 2
    Dernier message: 26/02/2003, 13h00

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