を生成するときに、私は(\ nは)改行を含む、私は前にAPIへの投稿にXMLを生成したい場合がありますキャリッジリターンを追加しますが、ない(ノー\ rを )。 C#のXDocumentは、キャリッジリターンを、最終的なXML文字列
は、しかし、XDocumentが自動的にまで弦方法キャリッジリターンを追加しているようです。)doc.Root.ToStringで
var inputXmlString = "<root>Some text without carriage return\nthis is the new line</root>";
// inputXmlString: <root>Some text without carriage return\nthis is the new line</root>
var doc = XDocument.Parse(inputXmlString);
var xmlString = doc.Root.ToString();
// xmlString: <root>Some text without carriage return\n\rthis is the new line</root>
を(\ n個の\ rのセットはするための要素との間に追加されます受信者がxmlメッセージ全体を解釈するのに重要でないインデント。しかし、ToString()メソッドは、スタンドアロンの改行を保持する必要がある実際のテキストフィールドの内側に\ rを追加します。
最終的な文字列置換を行うことができます。実際のHTTP投稿が実行される前にすべてのキャリッジリターンを最終文字列から削除しますが、これは間違っているようです。
のXElementオブジェクトの代わりに、Document.Parseを使用してXMLドキュメントを構築する際の問題は同じです。この問題は、たとえCData要素を使ってテキストをラップしても存続します。
私は何か間違っている場合、または私がしようとすることを達成するためのいくつかのきれいな方法がある場合、誰にでも私に説明することはできますか?
ありがとう!それがトリックでした。 –