XMLTextWriterのCRLFの代わりに、CRでXMLを生成するにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/3415294

  •  26-09-2019
  •  | 
  •  

質問

XMLTextWriter経由でXMLを生成しています。

ファイルは私の目には良さそうです、検証します(WC3で)、そしてクライアントによって受け入れられました。

しかし、クライアントベンダーは、CRだけでなく、ラインエンドがCRLFであると不平を言っています。

さて、私はC#を使用してWin32マシンを使用しており、CRLFはWin32標準ラインエンドです。 XMLTextWriterのラインエンドを変更する方法はありますか?

また、ラインエンドは適切なXMLパーサーにとって重要ではありませんか?

参照: キャリッジリターン、ラインフィード、フォームフィードとは何ですか?

注:唯一の答えは横向きのソリューションであるように見えます - xmltextwriterの代わりにxmlwriterを使用する必要があります

役に立ちましたか?

解決

もちろん、尋ねた後、私はMSDNの手がかりを見つけます(Googleで見つけることができなかったもの) xmlwritersettings.newlinechars

その後、私は受け入れられない答えに導かれました SO:特定のNewLine文字(C#)を使用してファイルするXMLDocumentを書く

それはすべて用語にあります.....

他のヒント

XMLWriterSettingsを使用して、必要なものをラインチャーの終わりとして設定します。

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

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

ラインのキャラクターがどこで重要であるかはわかりません。私は以前にそれに遭遇したことがありません。

使用されるラインエンディングは、適切に実装されたパーサーにとって重要ではありません(参照 仕様)、私は引用します(私の強調):

アプリケーションのタスクを簡素化するために、XMLプロセッサ すべてのラインブレークを正規化したかのように動作する必要があります 2文字のシーケンス#XD #XAと#XAが単一の#XA文字に続いていない#XDの両方を翻訳することにより、解析前の外部解析エンティティ(ドキュメントエンティティを含む)では、解析前に。

したがって、あなたは今それを持っている方法で大丈夫でなければなりません。クライアントベンダーが実際にそこで何をしているのか尋ねたいと思うかもしれません。彼らが間違っている可能性があります。

xmlwritersettings.newlinecharsプロパティを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top