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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top