Question

Je génération XML via XmlTextWriter.

Le fichier semble bon à mes yeux, valide ( à WC3 ), et a été acceptée par le client.

Mais un fournisseur client se plaint que les fins de ligne sont CRLF, au lieu de simplement CR.

Eh bien, je suis sur une machine Win32 en utilisant C # et CRLF est la norme Win32 de fin de ligne. Est-il possible de changer les fins de ligne dans le XmlTextWriter?

En outre - ne doivent pas les fins de ligne pas d'importance à un analyseur XML approprié

voir aussi: Quels sont le retour chariot, saut de ligne et sous forme d'alimentation

NOTE: ressemble à la seule réponse est une solution sur le côté - vous devez utiliser le XmlWriter au lieu de XmlTextWriter

Était-ce utile?

La solution

bien sûr, des moments après avoir demandé, je trouve un indice sur MSDN (que je ne pouvais pas trouver via google) qui fait référence à XmlWriterSettings.NewLineChars

qui me conduisit à la réponse unaccepted sur

Autres conseils

Utilisez les XmlWriterSettings pour définir ce que vous voulez que votre fin de ligne omble chevalier.

XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.NewLineChars = "\r";

XmlWriter writer = XmlWriter.Create(
                         new StreamWriter(@"c:\temp\hello.xml", mySettings);

Je ne sais pas où des caractères de fin de ligne importerait. Je ne l'ai pas courir en avant.

Quelle fin de ligne est utilisée ne devrait pas importer à un analyseur correctement mis en œuvre (voir la spécification ), je cite (Souligné par l'auteur):

  

Pour simplifier les tâches des applications,   le processeur XML doit se comporter comme si elle   normalisé tous les sauts de ligne externe   entité analysable (y compris le   entité document) sur l'entrée, avant   l'analyse, en traduisant à la fois le   séquence de deux caractères #xD #xA et tout #xD   qui n'est pas suivie #xA à un seul caractère #xA.

Par conséquent, vous devriez être très bien avec la façon dont vous l'avez en ce moment. Vous voudrez peut-être demander à ce que le fournisseur du client est en train de faire là-bas, les chances sont qu'ils font mal.

Utilisez la propriété XmlWriterSettings.NewLineChars.

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