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 :

mise a jour de donnée dans un fichier xml


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 47
    Points
    47
    Par défaut mise a jour de donnée dans un fichier xml
    Bonjour je voudrais mettre à jours un fichier XML nomé Compeur.xml
    le code doit permettre de mettre à jour une variable qui est une consommation : pour cela on se place dans les noeuds approprié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     XPathNodeIterator noeuds = navigateur.Select("/Compteurs/compteur[@num='"+this.numCompteur+"']");
    numCompteur retourne un numéro de compteur soit "1234" , soit "7654" ou "6789" En fonction de cette variable on doit donc ce placer dans le noeud approprié

    voici le contenu du fichier xml :

    <?xml version="1.0" encoding="utf-8"?>
    <Compteurs>

    <compteur num="1234">

    </compteur>


    <compteur num="7654">

    </compteur>


    <compteur num="6789">

    </compteur>

    </Compteurs>

    voici le code :

    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
     XmlDocument Doc;
                Doc = new XmlDocument();
                Doc.Load("Compteurs.xml");
                XPathNavigator navigateur = Doc.CreateNavigator();
                XPathNodeIterator noeuds = navigateur.Select("/Compteurs/compteur[@num='"+this.numCompteur+"']");
     
     
                 if(noeuds.Count != 0){
                     noeuds.Current.MoveToAttribute("Consommation", "");
                     noeuds.Current.SetValue(this.consommationTotalisee.ToString());             
                 }
                 else{
                     noeuds.Current.InsertAfter();
                     noeuds.MoveNext();
     
                 }
    et voici le problème



    sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     if(noeuds.Count != 0){
                     noeuds.Current.MoveToAttribute("Consommation", "");
                     noeuds.Current.SetValue(this.consommationTotalisee.ToString());             
                 }
                 else{
                     noeuds.Current.InsertAfter();
                     noeuds.MoveNext();
    
                 }
    voilà merci de votre aide bonne journée a tous

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 47
    Points
    47
    Par défaut
    j'ai trouvé il suffit de se déplacé dans le noeud comme ci-contre :

    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
      XmlDocument Doc;
                Doc = new XmlDocument();
                Doc.Load("Compteurs.xml");
                XPathNavigator navigateur = Doc.CreateNavigator();
                XPathNodeIterator noeuds = navigateur.Select("/Compteurs/compteur[@num='"+this.numCompteur+"']");
                noeuds.MoveNext();
    
                 if(noeuds.Count != 0){
                     noeuds.Current.MoveToAttribute("Consommation", "");
                     noeuds.Current.SetValue(this.consommationTotalisee.ToString());             
                 }
                 else{
                     noeuds.Current.InsertAfter();
                     noeuds.MoveNext();
    
                 }
    
                  Doc.Save("Compteurs.xml");

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    tu peux faire ::

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     noeuds.Attributes["Consommation"].Value="fiction";
    lien msdn

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/02/2008, 23h52
  2. Inséré donnée dans un fichier Xml
    Par rafiq25 dans le forum C#
    Réponses: 1
    Dernier message: 15/05/2007, 15h02
  3. Extraction de donnés dans un fichier XML
    Par ANISSS dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/01/2006, 14h16
  4. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 21h39
  5. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 17h51

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