4

XmlTextWriterを介してXMLを生成しています。

このファイルは私の目には見栄えがよく、検証され(wc3で)、クライアントに受け入れられました。

しかし、クライアントベンダーは、行末が単なるCRではなくCRLFであると不満を漏らしています。

ええと、私はC#を使用しているWin32マシンを使用しており、CRLFはWin32標準の行末です。XmlTextWriterの行末を変更する方法はありますか?

また、行末は適切なXMLパーサーにとって重要ではありませんか?

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

注:唯一の答えは横向きの解決策のようです-XmlTextWriterの代わりにXmlWriterを使用する必要があります

4

4 に答える 4

6

もちろん、尋ねた直後に、 XmlWriterSettings.NewLineCharsを参照する MSDN (Google 経由では見つけられなかった) に関する手がかりを見つけました。

それから、SOに関する受け入れられていない答えに私を導きました:特定の改行文字を含むファイルにXMLDocumentを書き込む(c#)

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

于 2010-08-05T13:56:09.370 に答える
5

XmlWriterSettings を使用して、行末文字として必要なものを設定します。

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

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

行末文字がどこで重要になるかわかりません。私は前にそれに出くわしたことはありません。

于 2010-08-05T13:55:33.677 に答える
1

どの行末が使用されているかは、適切に実装されたパーサーにとって重要ではありません (仕様を参照)、私は引用します (私の強調):

アプリケーションのタスクを簡素化するために、XML プロセッサ、解析前に、2 文字のシーケンス #xD #xA と任意の # #xA が続かない xD を単一の #xA 文字に変換します。

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

于 2010-08-05T13:56:32.490 に答える
0

XmlWriterSettings.NewLineChars プロパティを使用します。

于 2010-08-05T13:56:37.513 に答える