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

ASP.NET Discussion :

[C#] modifier la valeur d'une seule ligne d'un Fichier XML


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Points : 60
    Points
    60
    Par défaut [C#] modifier la valeur d'une seule ligne d'un Fichier XML
    c'est probablement très facile à faire, mais je n'arrive pas à trouver
    comment est-ce que je peut modifier la valeur d'une ligne d'un fichier XML

    mon fichier est le fichier Xeb.config. je veux modifier la string de connection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
    	<add key="ConnectionString" value="Server=MDIM000-000348; Database=SDV; User Id=sdv; password=sdv"/>
      </appSettings>  
      <system.web>
    ...
    je voudrais donc modifier la valeur de la ConnectionString par programmation

    ce que j'ai présentement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    XmlDocument objFichierXML = new XmlDocument&#40;&#41;;
    objFichierXML.Load&#40;strWebConfigPath&#41;;
     
    // c'est ici que je ne sais pas comment faire la modification
    // je voudrais quelque chose du genre&#58;
    // objFichierXML.FindNode&#40;"ConnectionString"&#41;.value = strCnnString
     
    objFichierXML.Save&#40;strWebConfigPath&#41;;
    merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Points : 60
    Points
    60
    Par défaut
    J'ai trouvé une solution qui fonctionne voici ce que j'ai fait :
    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
     
    ...
    XmlDocument objFichierXML = new XmlDocument&#40;&#41;;
    objFichierXML.Load&#40;strWebConfigPath&#41;; 
     
    XmlNodeList objLstNoeuds = objFichierXML.SelectNodes&#40;"configuration/appSettings/add"&#41;;
     
     
    foreach &#40;XmlNode objNoeud in objLstNoeuds&#41;&#123;
    	if&#40;objNoeud.Attributes&#91;"key"&#93;.Value.ToLower&#40;&#41; == "connectionstring"&#41;&#123;
    		objNoeud.Attributes&#91;"value"&#93;.Value = strCnnString;
    	&#125;
    &#125;
     
    objFichierXML.Save&#40;strWebConfigPath&#41;;
    Mais je ne sais pas si il y a une meilleure façon de modifier la ligne,
    j'aimerais avoir vos commentaires

    merci[/code]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Ta solution marche, mais j'ai trouvé mieux encore, je poste même si ça fait un moment que ce sujet est passé...

    Tu peux utiliser SelectSingleNode pour retrouver directement le noeud que tu veux modifier via l'un de ses attributs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    XmlDocument objFichierXML = new XmlDocument&#40;&#41;;
    objFichierXML.Load&#40;strWebConfigPath&#41;;
     
    XmlNode objNoeud = objFichierXML.SelectSingleNode&#40;"//add&#91;@key='ConnectionString'&#93;"&#41;;
     
    objNoeud.Attributes&#91;"value"&#93;.Value = strCnnString;
     
    objFichierXML.Save&#40;strWebConfigPath&#41;;

  4. #4
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Points : 60
    Points
    60
    Par défaut
    merci

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

Discussions similaires

  1. Lire une seule ligne dans un fichier XML
    Par amine1980 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 27/04/2011, 14h49
  2. [AC-2007] Requête UNION : récuperer les valeurs sur une seule ligne
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/12/2009, 13h02
  3. Réponses: 12
    Dernier message: 13/08/2009, 10h31
  4. Comment lire une seul ligne d'un fichier texte?
    Par Julien1987 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/01/2007, 14h36
  5. Réponses: 1
    Dernier message: 08/09/2006, 06h25

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