Question

J'écris un document XML en C #.

J'ai quelque chose comme ça ...

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

et je le fais ...

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

et l'élément xml est comme ça ...

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

Il s'agit essentiellement d'un espace blanc converti dont la longueur est supérieure à 1 à 1 caractère.

Comment puis-je empêcher cela?

Était-ce utile?

La solution

Désolé, je me suis trompé auparavant (suppression de la mauvaise réponse). Mais je ne peux pas reproduire ce que vous semblez voir. Vérifiez ce programme ... il préserve les espaces.

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

Autres conseils

OK ...

Ceci est uniquement un problème d'affichage d'IE. Quelque chose à voir avec la police, je suppose.

Lorsque j'ouvre le fichier XML dans Notepad ++, je constate que l'espace blanc est réellement préservé correctement.

Au lieu de WriteString (), vous pouvez utiliser WriteCData () pour inclure le texte dans un bloc CDATA si l'affichage dans IE est important.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top