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 :

XDocument - Remplacer un noeud par le contenu d'un fichier


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 109
    Par défaut XDocument - Remplacer un noeud par le contenu d'un fichier
    Bonjour,

    j'ai deux fichiers XML, je cherche à remplacer un noeud du fichier1 par le contenu du fichier2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    XDocument xmlHeader = XDocument.Load("fichier1.txt");
    using (StreamReader xmlsr = new StreamReader("fichier2.txt"))
                        {
                            string ss = xmlsr.ReadToEnd();
                            XElement noeudRd = xmlHeader.Root.Descendants().Where(nd => nd.Name == "BaliseTemporaire").First();
                            noeudRd.ReplaceWith(ss);
     
                            xmlHeader.Save(Path.Combine(ConfigurationManager.AppSettings["DossierSortie"], "sortie.xml")),SaveOptions.None);
     
                        }
    en sortie le contenu du fichier 2 est copié, mais les '<' '>' des balises du fichier 2 sont remplacés par leur code HTML.

    comment éviter cela ? ou avez vous d'autre solution pour remplacer le noeud ?

    Merci d'avance

  2. #2
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Salut,
    Je passerai plutot par un XmlDocument et un xpath pour sélectionner le noeud, ce qui donnerai quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    XmlDocument xmlHeader = new XmlDocument();
    xmlHeader.Load("fichier1.txt");
    XmlNode noeudRd = xmlHeader.DocumentElement.SelectSingleNode("//BaliseTemporaire");
    using (StreamReader xmlsr = new StreamReader("fichier2.txt"))
    {
    	noeudRd.InnerXml = xmlsr.ReadToEnd();
    }
    xmlHeader.Save(Path.Combine(ConfigurationManager.AppSettings["DossierSortie"], "sortie.xml")),SaveOptions.None);

Discussions similaires

  1. comment remplacer un caractere par un autre dans un fichier txt
    Par uzumaki_naruto dans le forum Langage
    Réponses: 6
    Dernier message: 24/07/2006, 13h33
  2. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  3. Réponses: 2
    Dernier message: 11/05/2006, 22h21
  4. Remplacer un mot par un autre dans un fichier
    Par vbcasimir dans le forum Linux
    Réponses: 8
    Dernier message: 25/04/2006, 12h08
  5. Réponses: 2
    Dernier message: 15/03/2005, 15h40

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