firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.

XmlReader пропускает теги, как побороть?

https://docs.microsoft.com/ru-ru/dotnet/api/system...

Крайне интересная ситуация. XmlReader пропускает тэги причем через раз.

while (_reader.Read())
            {
                switch (_reader.NodeType)
                {
                    case XmlNodeType.Element:
                        if (_reader.Name == Tags.CompanyTag)
                        {
                            var c = new Company(_reader.ReadOuterXml());
                            PutInDictionary(c);
                            OnCompanyParsed(this, c);
                        }
                        break;
                }
            }


Причем делает это самым подлым образом.
Корректно обрабатывает

<?xml version="1.0" encoding="utf-8" ?>
<companies_list>
  <company>
    <name>A</name>
  </company>
  <company>
    <name>B</name>
  </company>
  <company>
    <name>C</name>
  </company>
</companies_list>


Некорректно, выбирает только 1 и 3 элементы.
<?xml version="1.0" encoding="utf-8" ?>
<companies_list><company><name>A</name></company><company><name>B</name></company><company><name>C</name></company></companies_list>


Как с этим бороться?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Потому что вы читаете два раза подряд.
_reader.ReadOuterXml() => Тут вы уже находитесь на B
А затем
while (_reader.Read()) => Переходите к C
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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