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

C++Builder Discussion :

Problème d'écriture dans un fichier xml


Sujet :

C++Builder

  1. ###raw>post.musername###
    Membre à l'essai
    Problème d'écriture dans un fichier xml
    Bonjour,

    Je me débat depuis qq jours sur un problème avec un fichier xml mais là j'ai besoin d'aide !
    En fait, j'ai besoin d'ajouter un sous noeud dans un fichier xml qui se présente de la forme suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="iso-8859-1" ?> 
    <test nom="Essai">
      <login>a</login> .......
    </test>


    Moi je souhaiterai ajouter un sous noeud du même genre que login.

    Pour cela je lis et je copie mon fichier ds un autre doc que je nomme temp.xml et là je souhaiterai ajouter mon sous noeud.
    Mais je n'y arrive pas du tout et je ne sais plus quoi essayer.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TXMLDocument *xml=new TXMLDocument("");
    xml->LoadFromFile(open->Files->Strings[i]);
    xml->Active=true;
    xml->SaveToFile(ExtractFilePath(Application->ExeName)+"Tests\\temp.xml");  // jusque là ça fonctionne
     
    Noeud=xml->DocumentElement->AttributeNodes->FindNode("test") ; //ça ne marche pas
    SousNoeud = Noeud->AddChild("utilisateur") ; // ça devrait marcher si j'arrive à récuperer le nom du noeud principal


    Si qq'un peux m'aiguiller, me donner des pistes ou des endroits où chercher, je suis preneuse car je n'ai vraiment rien trouvé.
    Mercisss d'avance.
      0  0

  2. #2
    Futur Membre du Club
    TXMLDocument => voila le prb...
    Bonjour,

    Premier indice que je peux fournir :
    La sauvegarde du fichier XML doit etre faite aprés le traitement si le but est de conserver le noeud supplementaire sous forme de fichier.

    Deuxieme indice :
    J'ai tenter d'utiliser TXMLDocument de la meme maniere pour un projet, et il s'est avéré que le composant TXMLDocument se comporte différement (pour ne pas dire étrangement) lors qu'il est créer en code plutot qu'en conception graphique.

    Voila le genre de code qui a résolu tous mes soucis avec TXMLDocument :
    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
     
        try
        {
            AnsiString XMLFileName = ExtractFilePath(Application->ExeName)+"XML";
            AnsiString event_time = Now().FormatString("yyyy-mm-dd hh:nn:ss");
     
            _di_IXMLDocument myXML;
            myXML=LoadXMLDocument(XMLFileName);
     
            myXML->Active = true;
            IXMLNode* myEV = myXML->DocumentElement->AddChild("event");
            myEV->AddChild("date")->SetText(event_time);
            myEV->AddChild("action")->SetText("I");
     
            myXML->SaveToFile(XMLFileName);
            myXML->Active = false;
            delete(myXML);
        }
        catch(Exception &E)
        {
        	Err = "Err XML."
        }

###raw>template_hook.ano_emploi###