我在其屬性值中處理包含製表符(「\ t」)和換行符(「\ n」)的xml。當我使用XDocument.Parse()解析它時,即使使用LoadOptions.PreserveWhitespace參數,也可以將製表符和換行符轉換爲空格。如何在使用XDocument時保留屬性值中的空格?
如何獲得具有原始屬性值的XDocument?
我在其屬性值中處理包含製表符(「\ t」)和換行符(「\ n」)的xml。當我使用XDocument.Parse()解析它時,即使使用LoadOptions.PreserveWhitespace參數,也可以將製表符和換行符轉換爲空格。如何在使用XDocument時保留屬性值中的空格?
如何獲得具有原始屬性值的XDocument?
我沒有找到真正的解決辦法,所以我結束了一個快速&髒:
xml = xml.Replace("\t", "	").Replace("\r", "
");
總比沒有好......
你可以使用一個簡單的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	y
z
" />