如何在使用XDocument时保留属性值中的空格?

时间:2010-10-15 13:41:42

标签: .net attributes whitespace linq-to-xml

我在其属性值中处理包含制表符(“\ t”)和换行符(“\ n”)的xml。当我使用XDocument.Parse()解析它时,即使使用LoadOptions.PreserveWhitespace参数,选项卡和换行符也会转换为空格。

如何获取具有原始属性值的XDocument?

2 个答案:

答案 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&#x9;y&#xD;z&#xA;" />

答案 1 :(得分:0)

我没有找到真正的解决方案,所以我最终得到了一个快速的&amp;脏:

xml = xml.Replace("\t", "&#x9;").Replace("\r", "&#xA;");

总比没有好......