2013-03-07 64 views
4
using (System.IO.StreamReader sr = new System.IO.StreamReader(path, System.Text.Encoding.GetEncoding("Windows-1252"), true)) 
{ 

    xdoc = XDocument.Load(sr); 
} 

這裏是我的XML如何讓XDocument.Load保留換行符

<sheet name="sheet1" bounds="160,128,464,288"> 
    <text name="text1" bounds="160,128,464,288" text="a 

    b"/> 
</sheet> 

XDocument.Load轉換

a 

b 

a b 

如何維護我行休息?

回答

5

默認情況下屬性中的空白空間被轉換爲空格。使用元素中的新行代替屬性是更安全的。

如果它超出了你的控制範圍 - 設置XmlTextReader.Normalizationfalse應該防止默認行爲。

// Create the XML fragment to be parsed. 
string xmlFrag = 
@"<item attr1=' test A B C 
    1 2 3'/> 
    <item attr2='&#01;'/>";       
XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context); 

// Show attribute value normalization. 
reader.Read(); 
reader.Normalization = false; 
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1")); 
reader.Normalization = true; 
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1")); 
:從下面的文章

部分樣品