Preservar espaço em branco em string com XmlTextWriter.WriteString
-
03-07-2019 - |
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?
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.