2012-09-04 36 views
0

我有一個XElement,我在代碼中構建。它(概念上)有2組節點。如果我只是打印出來,我會得到一個格式良好的Xml文件,但是所有的節點都在一起。如果我在兩組之間添加幾條換行符,以便更容易理解,我會丟失它後面的所有格式。 如何在兩組之間添加一個小小的中斷,並保持格式化的其餘部分?將空白行添加到XElement以保留其他格式

例子:
這是默認:

<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> 
+0

你可以添加如何打印出來嗎?你在使用XmlWriterSettings嗎? – Peter

+0

@Peter myXElemnt.ToString() – baruch

回答

1

查看發佈的解決方案here。我覺得用乾淨的解決方案是不可能的。我嘗試了幾種方法,但無濟於事。我還查看了System.Linq.Xml源代碼,但無法真正找到它爲什麼這樣做。

另一種選擇是做ToString第一,再到之後的新行添加(與更換,如果你知道哪些節點需要換行):

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

但是,這可能會弄髒您的再次縮進。