Что делает я должен сделать или в моем коде C# или в моем XML-документе так, чтобы синтаксический анализатор XDocument считал литеральный пробел для Value
s XElement
s?
У меня есть XML-документ, часть которого похожа на это:
<NewLineString> </NewLineString>
<IndentString> </IndentString>
Я добавляю значения каждого XELement
к словарю данных с помощью запроса LINQ; .ForEach
часть похожа на это:
.ForEach(x => SchemaDictionary.Add(
LogicHelper.GetEnumValue(x.Name.ToString()), x.Value));
Для тестирования, чтобы видеть, были ли пробельные значения сохранены я распечатываю строку чисел символов каждого объекта значения в словаре данных. В следующем коде, x
представляет a KeyValuePair
и Aggregate
просто делает строку символьных целочисленных значений:
x.Value.ToCharArray()
.Aggregate<char,string>("",(word,c) => word + ((int)c).ToString() + " " )
));
Я ожидал видеть 10 13
для <NewLineString>
значение и 32 32 32 32
для <IndentString>
значение. Однако ничто не было распечатано для каждого значения (примечание: другие завершенные значения в XML такой как <
распечатанный их числа символов правильно).
Что я должен сделать или в моем коде C# или в моем XML-документе так, чтобы мой синтаксический анализатор добавил полную пробельную строку к Словарю Данных?
Попробуйте загрузить XDocument с помощью LoadOptions.PreserveWhitespace
Попробуйте загрузить документ таким образом.
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load("book.xml");