Я пытаюсь использовать C # XmlReader для большой серии XML-файлов, все они правильно отформатированы, за исключением нескольких избранных (к сожалению Я не могу их изменить,потому что это сломало бы много другого кода).
Ошибки происходят только из одной конкретной части этих оскорбительных XML-файлов, и можно просто пропустить их, но я не хочу прекращать чтение остальной части XML-файла .
Плохие части выглядят так:
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
На самом деле, если бы я мог просто игнорировать недопустимые теги или игнорировать символ вертикальной черты, то все было бы в порядке.
Попытка использовать XmlReader.Skip (), когда я вижу имя "ErrorsHere" не работает, очевидно, оно уже читает немного вперед и выдает исключение.
TL; DR: как пропустить, чтобы я мог читать в XML-файле выше, используя XmlReader?
Изменить:
Некоторые люди предлагали просто заменить символ '|', но идея XmlReader заключается в том, чтобы не загружать весь файл, а только перемещаться по частям, которые вам нужны, поскольку я читаю непосредственно из файлов, я не могу позволить себе чтение целых файлов. , замените все экземпляры '|' а затем прочтите части еще раз :).