Préserver les espaces dans la chaîne avec XmlTextWriter.WriteString
-
03-07-2019 - |
Question
J'écris un document XML en C #.
J'ai quelque chose comme ça ...
string output = "REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _";
et je le fais ...
objXmlTextWriter.WriteStartElement("Case");
objXmlTextWriter.WriteString(record);
objXmlTextWriter.WriteEndElement();
et l'élément xml est comme ça ...
<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>
Il s'agit essentiellement d'un espace blanc converti dont la longueur est supérieure à 1 à 1 caractère.
Comment puis-je empêcher cela?
La solution
Désolé, je me suis trompé auparavant (suppression de la mauvaise réponse). Mais je ne peux pas reproduire ce que vous semblez voir. Vérifiez ce programme ... il préserve les espaces.
class Program
{
static void Main(string[] args)
{
XmlWriter w = XmlTextWriter.Create("./foo.xml");
w.WriteStartElement("foo");
w.WriteString(" THIS HAS VARYING SPACeS ");
w.WriteEndElement();
w.Close();
StreamReader sr = new StreamReader("./foo.xml");
Console.WriteLine(sr.ReadToEnd());
Console.ReadKey();
}
}
Autres conseils
OK ...
Ceci est uniquement un problème d'affichage d'IE. Quelque chose à voir avec la police, je suppose.
Lorsque j'ouvre le fichier XML dans Notepad ++, je constate que l'espace blanc est réellement préservé correctement.
Au lieu de WriteString (), vous pouvez utiliser WriteCData () pour inclure le texte dans un bloc CDATA si l'affichage dans IE est important.