C# - System.Xml.Document: Comment sauvegarder les caractères spéciaux dans le fi

Résolu
Smashingraph Messages postés 7 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 7 octobre 2005 - 28 sept. 2005 à 15:45
Smashingraph Messages postés 7 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 7 octobre 2005 - 30 sept. 2005 à 09:51
Bonjour,



J'ai un petit souci lors de la sauvegarde de mon fichier xml.

J'utilises une instance de la classe System.Xml.Document.



Je charges un document xml, l'édites à l'aide d'une application, puis
lorsque je sauvegarde (doc.save("file.xml") ), j'aimerais pouvoir
sauvegarder les espaces dans les éléments.



Exemple:

<element>

<sousElement> </sousElement>

</element>



Il me sauvegarde bien les espaces blancs, mais lors de la relecture dans mon application, les espaces ont été "trimmés".

C'est pourquoi je recherche à sauvegarder les espaces blancs par : &#32; mais lors de la sauvegarde il m'encode cette séquence et écris &amp;#32; et de ce fait n'est plus interpreté comme espace....



J'ai tenté en vain de jongler avec les encoding et différents manières de lire et écrire dans un fichier xml, mais en vain...



Toute aide serait la bienvenue! Merci d'avance!

4 réponses

Smashingraph Messages postés 7 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 7 octobre 2005
30 sept. 2005 à 09:51
Hello,



Merci pour l'indice Lutinore! J'arrive enfin à faire ce que je veux.



Quand je détécte des espaces blancs, je les remplaces par: &#32; .

Lors de la sauvegarde il m'écrit &amp;#32; (d'où mon
problème lors de la relecture car ce n'étais plus interprété comme
espace), et c'est pourquoi lors de la relecture j'utilises
System.Web.HttpUtility.HtmlDecode( string s ) pour contrer ce problème.




Un grand merci à Lutinore!



J'aimerais quand même ajouter que je trouve tout de même un peu bizarre que lors de l'écriture il se permette d'encoder mon &#32; alors que dans le fichier xml ces caractères sont très bien supportés et ne nécessitent pas d'encodage non ? et de plus il n'y a même pas moyen de spécifier si l'on désires d'encoder ou non ces caractères...



Sur ce, Bonne Journée !
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
28 sept. 2005 à 17:41
Salut,

XmlDocument.PreserveWhitespace
0
Smashingraph Messages postés 7 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 7 octobre 2005
29 sept. 2005 à 09:39
J'ai déjà tenté d'utiliser la propriété PreserveWhitespace, mais cela n'influe pas exactement sur ce que je veux.

Lorsque je mets PreserveWhitespace à true,
mon document xml perd toute son indentation, et se retrouve sur une
seule ligne, par contre dès que je spécifie PreserveWhitespace (par
défaut) à false l'indentation revient....
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 sept. 2005 à 19:48
Oui désolé j'avais pas testé.. Essayes de voir si tu peux t'aider des méthodes:

System.Web.HttpUtility.HtmlDecode( string s )
System.Web.HttpUtility.HtmlEncode( string s )
0
Rejoignez-nous