с использованием C # XmlReader для слегка искаженного XML

Я пытаюсь использовать C # XmlReader для большой серии XML-файлов, все они правильно отформатированы, за исключением нескольких избранных (к сожалению Я не могу их изменить,потому что это сломало бы много другого кода).

Ошибки происходят только из одной конкретной части этих оскорбительных XML-файлов, и можно просто пропустить их, но я не хочу прекращать чтение остальной части XML-файла .

Плохие части выглядят так:

 <InterestingStuff>
  ...
    <ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
    <OtherInterestingStuff>
    ...
    </OtherInterestingStuff>
</InterestingStuff>

На самом деле, если бы я мог просто игнорировать недопустимые теги или игнорировать символ вертикальной черты, то все было бы в порядке.

Попытка использовать XmlReader.Skip (), когда я вижу имя "ErrorsHere" не работает, очевидно, оно уже читает немного вперед и выдает исключение.

TL; DR: как пропустить, чтобы я мог читать в XML-файле выше, используя XmlReader?

Изменить:

Некоторые люди предлагали просто заменить символ '|', но идея XmlReader заключается в том, чтобы не загружать весь файл, а только перемещаться по частям, которые вам нужны, поскольку я читаю непосредственно из файлов, я не могу позволить себе чтение целых файлов. , замените все экземпляры '|' а затем прочтите части еще раз :).

9
задан Roy T. 11 July 2011 в 11:07
поделиться