Mantieni spazi bianchi nella stringa con XmlTextWriter.WriteString
-
03-07-2019 - |
Domanda
Sto scrivendo un documento XML in C #.
Ho qualcosa del genere ...
string output = "REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _";
e lo faccio ...
objXmlTextWriter.WriteStartElement("Case");
objXmlTextWriter.WriteString(record);
objXmlTextWriter.WriteEndElement();
e l'elemento xml risulta così ...
<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>
Ha sostanzialmente convertito lo spazio bianco con una lunghezza maggiore di 1 a 1 carattere di spazio bianco.
Come posso impedirlo?
Soluzione
Scusa, prima mi sono confuso (cancellata la risposta sbagliata). Ma non riesco a riprodurre ciò che sembra stia vedendo. Controlla questo programma ... conserva gli spazi.
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();
}
}
Altri suggerimenti
OK ...
Questo è solo un problema di visualizzazione IE. Qualcosa a che fare con il carattere immagino.
Quando apro l'XML in notepad ++ vedo che lo spazio bianco viene effettivamente conservato correttamente.
Invece di WriteString () potresti usare WriteCData () per racchiudere il testo in un blocco CDATA se la visualizzazione in IE è importante.