Preserve el espacio en blanco en la cadena con XmlTextWriter.WriteString
-
03-07-2019 - |
Pregunta
Estoy escribiendo un documento XML en C #.
Tengo algo como esto ...
string output = "REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _";
y hago esto ...
objXmlTextWriter.WriteStartElement("Case");
objXmlTextWriter.WriteString(record);
objXmlTextWriter.WriteEndElement();
y el elemento xml resulta así ...
<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>
Básicamente ha convertido un espacio en blanco con una longitud mayor de 1 a 1 carácter de espacio en blanco.
¿Cómo evito esto?
Solución
Lo siento, me confundí antes (eliminé la respuesta incorrecta). Pero no puedo reproducir lo que parece estar viendo. Mira este programa ... conserva espacios.
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();
}
}
Otros consejos
OK ...
Esto es solo un problema de visualización de IE. Algo relacionado con la fuente, supongo.
Cuando abro el XML en notepad ++ veo que el espacio en blanco se conserva correctamente.
En lugar de WriteString (), podría usar WriteCData () para encerrar el texto en un bloque CDATA si la visualización en IE es importante.