2010-10-15 92 views
3

我在其屬性值中處理包含製表符(「\ t」)和換行符(「\ n」)的xml。當我使用XDocument.Parse()解析它時,即使使用LoadOptions.PreserveWhitespace參數,也可以將製表符和換行符轉換爲空格。如何在使用XDocument時保留屬性值中的空格?

如何獲得具有原始屬性值的XDocument?

回答

0

我沒有找到真正的解決辦法,所以我結束了一個快速&髒:

xml = xml.Replace("\t", "	").Replace("\r", "
"); 

總比沒有好......

2

你可以使用一個簡單的XmlTextReader解析XML的該串。它會保留屬性值中的所有空格:

string textToParse = "<e a=\"x\ty\rz\n\" />" ; 
using (var sr = new StringReader(textToParse)) { 
    using (var xr = new XmlTextReader(sr)) { 
     var xd = XDocument.Load(xr); 
     System.Console.WriteLine(xd.ToString()); 
    } 
} 

將輸出

<e a="x&#x9;y&#xD;z&#xA;" /> 
相關問題