XML - Caractères spéciaux (\n ou encore \r...)

[Résolu]
Signaler
Messages postés
5
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
4 avril 2007
-
Messages postés
5
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
4 avril 2007
-
Bonjour à tous :)

N'ayant pas eu de réponses résolvant ma demande précédente (), j'ai tout de même continuer à coder comme un fou (:p), mais je me heurte à un léger souci...

J'ai un fichier XML, que j'utilise comme "fichier de configuration".
(Hop là, tentative d'utilisation de balises CODE fructueuse ?)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <entreprise entete_entreprise="SARL \rBlablabla  \nAdresse  \nNumero de telephone" pied_de_page_entreprise="SARL au capital de XXX Euros - N RCS : DFVXVGSD - NSIREN : C0DFDS0F0594354FY45 75"></entreprise>
</configuration>


Que je tente de lire pour afficher dans un PrintPreviewDialog :

//Création d'un objet représentant un fichier xml
            XmlDocument doc_config = new XmlDocument();
            //Chargement de notre fichier xml
            doc_config.Load("config.xml");
            //On récupère l'élément entete_entreprise
            XmlNodeList xnl_entreprise = doc_config.GetElementsByTagName("entreprise");

             //Pour chaque élément utilisateur
            foreach (XmlNode node_entete_pied in xnl_entreprise)
            {
                //Récupération de l'attribut date (1er attribut)
                XmlAttribute entete = node_entete_pied.Attributes[0];
                //Récupération de l'attribut profil (2ème attribut)
                XmlAttribute pied = node_entete_pied.Attributes[1];

                this.entete = entete.Value;
                this.pied_de_page = pied.Value;
            }


La lecture se passe bien, j'ai le texte que je désire, mais, comme vous pourrez le constater dans le premier attribut de mon noeud XML principal, j'ai des "\r" et autres "\n" :) qui ne sont pas interprété dans mon rendu...

Si en revanche je mets directement :

this.entete = "[Logo] \r SARL Blablabla \n Adresse \n Numéro de téléphone";

Les sauts de lignes escomptés sont bel et bien "affichés", ou du moins visibles :)

Auriez-vous une petite piste pour que mes caractères "spéciaux" soient interprétés à partir du texte contenu dans mon XML par hasard ?

Merci d'avance ;)

2 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
c'est normal... car dans XML tu n'as que des chaines "litérales"... en gros, .net interprète tes \n et \r en [file://\\n \\n] et [file://\\r \\r]... il faut donc que tu fasses un replace comme ceci :

this.entete = chaineXML.Replace("\\r","\r").Replace("\\n","\n");

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
5
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
4 avril 2007

Merci beaucoup pour l'info !
Ca marche impec ;)