Как я сохраняю пробельные символы при парсинге XML от C# LINQ

Что делает я должен сделать или в моем коде C# или в моем XML-документе так, чтобы синтаксический анализатор XDocument считал литеральный пробел для Values XElements?


Фон

У меня есть XML-документ, часть которого похожа на это:

    <NewLineString>&#10;&#13;</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 такой как &lt; распечатанный их числа символов правильно).

Что я должен сделать или в моем коде C# или в моем XML-документе так, чтобы мой синтаксический анализатор добавил полную пробельную строку к Словарю Данных?

6
задан Ben McCormack 5 February 2010 в 19:27
поделиться

2 ответа

Попробуйте загрузить XDocument с помощью LoadOptions.PreserveWhitespace

8
ответ дан 17 December 2019 в 02:28
поделиться

Попробуйте загрузить документ таким образом.

XmlDocument doc = new XmlDocument();
    doc.PreserveWhitespace = true;
    doc.Load("book.xml");
1
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: