2

コードで作成したXElementがあります。(概念的には)2つのノードグループがあります。印刷するだけで、適切にフォーマットされたXmlファイルが得られますが、すべてのノードが一緒になっています。人間が理解しやすいように2つのグループの間に改行をいくつか追加すると、それに続くすべての書式が失われます。2つのグループの間に小さな区切りを追加し、残りのフォーマットを保持するにはどうすればよいですか?

例:
これはデフォルトです:

<root>
  <node>1.1</node>
  <node>1.2</node>
  <node>2.1</node>
  <node>2.2</node>
</root>

これは、ブレークを追加した場合です。

<root>
  <node>1.1</node>
  <node>1.2</node>

<node>2.1</node><node>2.2</node></root>

これが私が欲しいものです:

<root>
  <node>1.1</node>
  <node>1.2</node>

  <node>2.1</node>
  <node>2.2</node>
</root>
4

1 に答える 1

3

ここに掲載されているソリューションを確認してください。クリーンなソリューションでは不可能だという印象があります。私は無駄に、いくつかの方法を試しました。System.Linq.Xmlソースコードも調べましたが、なぜこれが行われるのか実際にはわかりません。

もう1つのオプションは、ToString最初に改行を実行し、その後に改行を追加することです(どのノードに改行が必要かがわかっている場合は、置換を使用します)。

result = result.Replace("<parentNode>", Environment.NewLine + "<parentNode>");

しかし、それはおそらくあなたのインデントを再び台無しにするでしょう。

于 2012-09-04T12:48:22.957 に答える