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 :

[XMLDocument and co] Comment récupérer la chaine?


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut [XMLDocument and co] Comment récupérer la chaine?
    Bonjour,

    Je suis confronté à un petit problème avec la manipulation des flux xml...
    Je voudrais à partir d'une string récupérée en DB :
    - La charger dans un XmlDocument : OK avec un textReader.
    - La modifier : OK grâce à XpathNavigator et XpathNodeNavigator
    - renvoyer la chaine modifée sous forme de string : C'est la que ca bloque.
    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
    23
     
                TextReader reader = new StringReader(filter.Value);
                XmlDocument xmlDoc = new XmlDocument();
     
                xmlDoc.Load(reader);
                XPathNavigator xPathNavigator = xmlDoc.CreateNavigator();
                string strExp = "Mon Expression XPath";
     
                XPathNodeIterator nodes  = xPathNavigator.Select(xPathNavigator.Compile(strExp));
     
                while (nodes.MoveNext())
                {
                    nodes.Current.MoveToAttribute("value", "");
                    string strValue = nodes.Current.Value.ToString();
                    strValue = ModifMaValue(strValue);
                    nodes.Current.SetValue(strValue);
                }
                //Récupération de la chaine modifée...
                //Je vois pas trop comment faire...
                XmlTextWriter writer;
                xmlDoc.WriteTo(writer);
                writer.Formatting = Formatting.Indented;
                return...
    Ce bout de code est, je pense assez explicatif.
    Je bloque après la modification de mon fichier, je ne sais pas comment récupérer la valeur de la chaine.

    D'avance Merci et ...Bon Week-End

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Utilise un StringWriter.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut Solution
    Merci, mais j'aimerais aussi savoir comment instancier un objet de type XmlTextWriter, pour pouvoir accèder à la propriété Formatting de XmlTextWriter...

    D'avance encore merci

    EDIT :
    En chipotant un peu, j'ai trouvé

    bon voici le code pour les curieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                StringWriter strWriter = new StringWriter();
     
                XmlTextWriter writer = new XmlTextWriter(strWriter);
                writer.Formatting = Formatting.Indented; // bien faire avant de remplir le writer
                writer.Indentation = 2;
     
                xmlDoc.WriteContentTo(writer);
     
                writer.Flush();
                writer.Close();
                string strResult = strWriter.ToString();
                strWriter.Close();
                return strResult;

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

Discussions similaires

  1. [Langage/Algorithme] Comment récupérer une chaine de caractères à partir de TMemoryStream
    Par Xavier dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/10/2014, 13h00
  2. [RegEx] comment récupérer une chaine entre deux mots
    Par mat8883 dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2012, 19h29
  3. Comment récupérer une chaine de caractère selon son début et sa fin?
    Par neo62matrix dans le forum Général Python
    Réponses: 3
    Dernier message: 21/03/2012, 10h08
  4. Réponses: 5
    Dernier message: 16/03/2011, 09h46
  5. Réponses: 14
    Dernier message: 05/05/2008, 15h35

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