我在其属性值中处理包含制表符(“\ t”)和换行符(“\ n”)的xml。当我使用XDocument.Parse()解析它时,即使使用LoadOptions.PreserveWhitespace参数,选项卡和换行符也会转换为空格。
如何获取具有原始属性值的XDocument?
答案 0 :(得分:2)
您可以使用简单的XmlTextReader来解析xml-string。它将保留属性值中的所有空格:
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
" />
答案 1 :(得分:0)
我没有找到真正的解决方案,所以我最终得到了一个快速的&amp;脏:
xml = xml.Replace("\t", "	").Replace("\r", "
");
总比没有好......