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 :

[C#] Comment formater une chaine de caractères XML ?


Sujet :

C#

  1. #1
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 084
    Points
    2 084
    Par défaut [C#] Comment formater une chaine de caractères XML ?
    Bonjour à tous,

    mon problème est simple. J'ai une chaine de type String contenant du XML basique. Je voudrais le formatter en utilisant des tabulations (ou des espaces) avec des retours à la ligne pour qu'il soit lisible, le tout dans une autre chaine String.

    Voici le code que j'ai actuellement, qui me renvoit le même XML que celui de départ, càd non formaté, tout collé!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MemoryStream streamTmp = new MemoryStream();
    XmlTextWriter writer = new XmlTextWriter(streamTmp,System.Text.ASCIIEncoding.ASCII);
    XmlTextReader reader = new XmlTextReader(new StringReader(xmlNonFormate));
    writer.Formatting = Formatting.Indented;
    writer.Indentation = 5;
    writer.IndentChar = ' ';
    reader.MoveToContent();
    while (!reader.EOF)
    {
         writer.WriteNode(reader, false);
    }
    xmlFormate = streamTmp.ToString();
    Si quelqu'un a une idée simple, je suis preneur. Merci d'avance.

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut Re: [C#] Problème de formattage de chaine XML
    Citation Envoyé par blbird
    ...
    xmlFormate = st.ToString();
    .
    c'est quoi cet objet :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 084
    Points
    2 084
    Par défaut
    Pardon, c'était streamTmp, pas st. (modifié dans le code)

    Quoi qu'il en soit j'ai trouvé une autre manière de faire qui fonctionne, voici la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public String indenteXML(String xml)
    {
    	XmlDocument xmlDoc = new XmlDocument();
    	xmlDoc.LoadXml(xml);
    	StringWriter sw = new StringWriter();
    	XmlTextWriter twt = new XmlTextWriter(sw);
    	twt.Indentation = 4;
    	twt.IndentChar = ' ';
    	twt.Formatting = Formatting.Indented;
    	xmlDoc.WriteTo(twt);
    	return sw.ToString();
    }

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Merci pour ta contribution
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

Discussions similaires

  1. [C#] Comment inverser une chaine de caractères ?
    Par just1980 dans le forum Contribuez
    Réponses: 6
    Dernier message: 01/05/2011, 20h35
  2. Réponses: 7
    Dernier message: 20/04/2007, 16h42
  3. Réponses: 2
    Dernier message: 03/10/2005, 16h23
  4. Réponses: 2
    Dernier message: 14/01/2005, 15h40
  5. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30

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