Pergunta

Eu estou escrevendo um documento XML em C #.

Eu tenho algo parecido com isto ...

string output = "REAPP DUE  NO OF  M CASE NBR   APPL NBR      DATE  GRPS   M CASE NBR   APPL NBR      DATE  GRPS   _                                       _                                       _";

e faço isso ...

        objXmlTextWriter.WriteStartElement("Case");
        objXmlTextWriter.WriteString(record);
        objXmlTextWriter.WriteEndElement();  

e o elemento xml Acontece assim ...

<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>

É basicamente converteu espaço em branco com maior comprimento do que 1 a 1 caráter de espaço em branco.

Como posso evitar isso?

Foi útil?

Solução

Desculpe, fiquei confuso antes (excluída a resposta errada). Mas eu não posso reproduzir o que você parece estar vendo. Confira este programa ... ele faz preservar espaços.

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();
    }
}

Outras dicas

OK ...

Este é apenas um problema de exibição IE. Algo a ver com o tipo de letra, eu acho.

Quando abro o XML no bloco de notas ++ Eu vejo o espaço em branco é realmente preservada adequadamente.

Em vez de WriteString () você poderia usar WriteCData () para colocar o texto em um bloco CDATA se o visor em IE é importante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top