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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top