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

C# Discussion :

[XML C#]Mise a jour de données


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut [XML C#]Mise a jour de données
    bonjour j'ai un fichier XML représenté de la façon suivante::

    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
     
    <treeview>
    <record>
     <!-- OBJECT1 -->
     <!-- OBJECT2 -->
     <!-- OBJECT3 -->
    </record>
     
    <project>
     <!-- OBJECT1 -->
     <!-- OBJECT2 -->
     <!-- OBJECT3 -->
    </project>
     
    </treeview>
    Au fur et à mesure que les utilisateurs utilisent l'applications, ce fichier XML doit se mettre a jour.
    Je me demandais si il y avait un moyen de mettre a jour le fichier, sans pour autant réécrire tout le fichier.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    beh, tu peux regarder sur code project, marc Clifton a écrit un article sur la mise à jour de fichier sans tout ré-écrire... (enfin, je crois qu'il s'agit d'un article de M. Clifton...) en tout cas, sur code project, il y a 15 jours 1 mois, ca a été posté

    The Monz, TOulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    C'était un article ou il expliquait comment faire des Insert/Update/Delete/Query Statements ?

    http://www.codeproject.com/dotnet/XmlDb.asp

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    euh non, c'était plutot un article ou il expliquait une technique pour inserer
    des informations dans un fichier sans avoir à tout ré-écrire...

    Mais bon, si tu fais de l'XML, je pense qu'il est plus judicieux de ré-écrire le
    fichier à chaque fois

    The Monz, TOulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    ok très bien je pense que je vais devoir tout réécrire
    ce qui m'embete le plus c'est de devoir mettre en mémoire tout le contenu de l'ancien fichier tous ca pour écrire une seule ligne.

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    oui, c'est clair que c'est "pénible" de faire cela ...

    Maintenant, ya pas enormement de solutions de contournement en dehors
    d'écrire à la fin du fichier (mais si c'est de l'XML, c'est pas trop conseillé)

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    ok merci pour tes réponses

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 47
    Points
    47
    Par défaut
    XMLDocument ?
    XPath ?

    Il y a toujours moyen de mettre à jour un xml. A moins que l'on parle de "reecriture" du xml au sens littéral, donc que l'on voudrait inserer directement dans le fichier .xml.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par An0d
    XMLDocument ?
    XPath ?

    Il y a toujours moyen de mettre à jour un xml. A moins que l'on parle de "reecriture" du xml au sens littéral, donc que l'on voudrait inserer directement dans le fichier .xml.
    en fait j'aimerais ajouter de nouvelles lignes dans mon fichier XML
    notament les lignes de commentaires.

    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
    <treeview>
    <record>
     <!-- OBJECT1 -->
     <!-- OBJECT2 -->
     <!-- OBJECT3 -->
    </record>
     
    <project>
     <!-- OBJECT1 -->
     <!-- OBJECT2 -->
     <!-- OBJECT3 -->
    </project>
     
    </treeview>

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 47
    Points
    47
    Par défaut
    Pour ton exemple ça pourrait être quelque chose dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
    xmlDoc.Load(@"C:\dir1\dir2\tonfichier.xml");
     
    System.Xml.XmlNode recordNode = xmlDoc.SelectSingleNode("/treeview/record"); // Ceci sélectionne ton noeud "record"
    recordNode.InnerText += "<!-- OBJECT1 -->\n<!-- OBJECT2 -->\n<!-- OBJECT3 -->";
     
    System.Xml.XmlWriter w = new System.Xml.XmlTextWriter(@"C:\dir1\dir2\tonfichier.xml", Encoding.UTF8);
    xmlDoc.WriteTo(w);
    w.Flush();
    w.Close();
    Sinon pour rajouter des noeuds au noeud "record" par exemple, tu peux faire comme ceci :

    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
     
    System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
    xmlDoc.Load(@"C:\dir1\dir2\tonfichier.xml");
     
    System.Xml.XmlNode recordNode = xmlDoc.SelectSingleNode("/treeview/record");
     
    System.Xml.XmlNode tonNouveauNode = xmlDoc.CreateNode("TonNouveauNode");
    tonNouveauNode.InnerText = "TonNouveauNode";
     
    recordNode.AppendChild(tonNouveauNode);
     
    System.Xml.XmlWriter w = new System.Xml.XmlTextWriter(@"C:\dir1\dir2\tonfichier.xml", Encoding.UTF8);
    xmlDoc.WriteTo(w);
    w.Flush();
    w.Close();

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    merci ca marche presque

    Mais apparement j'ai un probleme d'encoding car dans mon fichier XML voici ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <treeview><record>&lt;!--TEST_LUDO--&gt;
    &lt;!--PO_HDR--&gt;
    </record><project></project></treeview>
    Bon les retour a la ligne ne sont pas pris en comptes.
    Pourtant j'ai bien mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Xml.XmlTextWriter("monchemin",Encoding.UTF8);

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 47
    Points
    47
    Par défaut
    Il faut mettre un '@' devant "tonchemin" ou sinon il faut doubler les '\' donc c'est soit : @"C:\rep1\rep2\tonxml.xml" ou "C:\\rep1\\rep2\\tonxml.xml"


    Sinon poste ton bout de code ici pour voir comment tu as fait.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    en fait je n'ai aucun problème avec mon chemin, je met déja un @devant. J'ai juste un problème avec le contenu qui est écrit dans le fichier XML.
    Demain je posterai mon bout de code car je ne l'ai pas sous la main la.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    voici mon bout de code qui écrit le fichier XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     private void MAJTreeViewV2Record()
            {
                System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
                xmlDoc.Load(@"c:\Temp\XML\treeview.xml");
     
                System.Xml.XmlNode recordNode = xmlDoc.SelectSingleNode("/treeview/record"); // Ceci sйlectionne ton noeud "record"
                recordNode.InnerText += "<!--" + _nom_record + "-->\n";
     
                System.Xml.XmlWriter w = new System.Xml.XmlTextWriter(@"c:\Temp\XML\treeview.xml",Encoding.UTF8);
                xmlDoc.WriteTo(w);
                w.Flush();
                w.Close();
            }
    et voila le résultat de l'écriture du fichier XML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <treeview><record>&lt;!--TEST_LUDO--&gt;
    &lt;!--TEST_LUDO--&gt;
    </record><project></project></treeview>
    Le problème est que les caracteres < et > ainsi que les retour chariot ne sont pas bien écrit. Et je ne sais pas comment faire...

  15. #15
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    tu as essayé de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recordNode.InnerText += "\<!--" + _nom_record + "--\>\n";
    je sais pas si cela va marcher, mais cela vaut le coup d'essayer ...

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    les caractere < et > c bon c'est réglé avec le @ lol
    parcontre avec les retour chariot \n, ca marche toujours pas :s:s

  17. #17
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    pourtant dans ton exemple, le "\n" était bien présent à moins que tu es remis en forme ton texte ?

    Peux tu nous dire exactement où sont placés les "\n", et ensuite le fichier xml obtenus sans remise en forme du texte ..

    Mosco

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    oui je l'ai remis en forme car tout est sur la même ligne normalement

  19. #19
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    à la place de tes "\n" essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recordNode.InnerText += @"<!--" + _nom_record + @"-->" + Environment.NewLine;


    Mosco

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    CA fonctionne c'est trop bon! Thanks!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. mise a jour de donnée dans un fichier xml
    Par Amiral62 dans le forum C#
    Réponses: 2
    Dernier message: 04/02/2013, 14h39
  2. mise a jour des donnèe entre DataGridView et MySQL
    Par TheBlackReverand dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/06/2007, 20h47
  3. comment mettre des mises a jour de données
    Par Asmod_D dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 16/03/2007, 16h36
  4. Mise a jour des données sans se deconnecter
    Par djedie dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/10/2006, 12h57
  5. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 12h46

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