从C#LINQ解析XML时,如何保留空白字符
我需要在C#代码或XML文档中做什么才能让XDocument解析器读取XElement
的Value
s的文字空格?
背景
我有一个XML文档,其中一部分如下所示:
我正在使用LINQ查询将每个XELement
的值添加到数据字典中; .ForEach
部分如下所示:
.ForEach(x => SchemaDictionary.Add( LogicHelper.GetEnumValue(x.Name.ToString()), x.Value));
为了测试是否保留了空白值,我打印出数据字典中每个值项的字符编号行。 在下面的代码中, x
表示KeyValuePair
,而Aggregate
只是生成字符整数值的字符串:
x.Value.ToCharArray() .Aggregate("",(word,c) => word + ((int)c).ToString() + " " ) ));
我希望值为
10 13
, 值为
32 32 32 32
。 但是,没有为每个值打印任何内容( 注意:XML中的其他转义值,例如<
正确打印其字符数 )。
我需要在C#代码或XML文档中做什么才能使我的解析器将完整的空白字符串添加到数据字典中?
尝试使用LoadOptions.PreserveWhitespace加载XDocument
尝试以这种方式加载文档。
XmlDocument doc = new XmlDocument(); doc.PreserveWhitespace = true; doc.Load("book.xml");
或者只是将输入xml修改为: