XmlReader читает вкладки как XText - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь загрузить поток XML в XDocument.Рассматриваемый XML может содержать некоторые вкладки, пробелы без перерывов и другие подобные нестандартные пробелы.Они не удаляются между элементами, несмотря на установку IgnoreWhitespace в значение true.Это приводит к тому, что созданный XDocument содержит XText элементов с этими значениями.

Пример XML:

<?xml version="1.0" encoding="utf-8"?>
<root>
      <sample>
            <value />
          </sample>
</root>

После загрузки полученный XDocument.Value должен быть пустымстрока, но вместо этого выглядит так

"\n           \t\n       \t  "

Ничто из того, что я нашел в документации Microsoft по обработке пробелов, похоже, не касается конкретного варианта присутствующего пробела.

Я пытался использовать XmlReader с XmlReaderSettings.IgnoreWhitespace, установленным в true.

// body is a stream created elsewhere

XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
XmlReader reader = XmlReader.Create(body, settings);
XDocument doc = XDocument.Load(reader);

Я также пытался установить LoadOptions.None.

XDocument doc = XDocument.Load(reader, LoadOptions.None);

У меня естьтакже попытался использовать XmlTextReader

XmlTextReader reader = new XmlTextReader(body);
reader.WhitespaceHandling = WhitespaceHandling.None;
...