从C#LINQ解析XML时,如何保留空白字符

Ben*_*ack 6 .net c# xml linq whitespace

我需要在C#代码或XML文档中做什么才能让XDocument解析器为Values的XElements 读取文字空格?


背景

我有一个XML文档,其中一部分如下所示:

    <NewLineString>&#10;&#13;</NewLineString>
    <IndentString>    </IndentString>
Run Code Online (Sandbox Code Playgroud)

我正在XELement使用LINQ查询将每个值添加到数据字典中; 该.ForEach部分看起来是这样的:

    .ForEach(x => SchemaDictionary.Add(
        LogicHelper.GetEnumValue(x.Name.ToString()), x.Value));    
Run Code Online (Sandbox Code Playgroud)

为了测试是否保留了空白值,我打印出一行数据字典中每个值项的字符数.在下面的代码,x表示KeyValuePairAggregate简单地使字符整数值的字符串:

x.Value.ToCharArray()
    .Aggregate<char,string>("",(word,c) => word + ((int)c).ToString() + " " )
    ));
Run Code Online (Sandbox Code Playgroud)

我期望看到10 13<NewLineString>价值,32 32 32 32对于<IndentString>价值.但是,没有为每个值打印任何内容(注意:XML中的其他转义值,例如&lt;正确打印其字符数).

我需要在C#代码或XML文档中做什么才能使我的解析器将完整的空白字符串添加到数据字典中?

Jef*_*Cyr 8

尝试使用LoadOptions.PreserveWhitespace加载XDocument