При обработке xml-файлов с помощью XmlReader наткнулся на проблему: xml-файл, который я обрабатывал (обход файла производил с помощью XmlReader.Read()), оказался с ошибкой (два тега наложилось друг на друга и вылетает ошибка, что такой-то символ не может стоять вначале имени). Вариантов исправить xml-файл нет, так как он очень большого объёма. После вылета ошибки обработка заканчивается, а мне бы как-нибудь продолжить её дальше...
Пробовал отловить try-catch и самовольно сделать XmlReader.Read() или XmlReader.Skip(), но обработка всё равно не продолжается. Удивлюсь, если нет решения этой проблемы и придется обрабатывать xml-ки как текстовый файл со своим блэкджеком и...
//var xMreader = XmlReader.Create(nameXmlFile); //так было до подсказки
var settings = new XmlReaderSettings {CheckCharacters = false};
var xMreader = XmlReader.Create(nameXmlFile, settings);
while (true)
{
try
{
while (xMreader.Read())
{
if (xMreader.NodeType != XmlNodeType.Element) continue;
//обработка
}
break;
}
catch (Exception exp)
{
//неудачная попытка "перепрыгнуть" через ошибочный участок xml
//запись ошибки в лог
}
}
Пример ошибочного xml(ошибка в node c id=2, где второй раз {31Z"2013..}):
<test>
<node id="1" version="1" timestamp="2013-03-25T13:56:31Z" changeset="15491865" uid="322785" user="BCNorwich"/>
<node id="2" version="1" timestamp="2013-03-25T13:56:31Z"2013-03-25T13:56:31Z"changeset="15491865" uid="322785" user="BCNorwich"/>
<node id="3" version="1" timestamp="2013-03-25T13:56:31Z" changeset="15491865" uid="322785" user="BCNorwich"/>
<node id="4" version="1" timestamp="2013-03-25T13:56:31Z" changeset="15491865" uid="322785" user="BCNorwich"/>
<node id="5" version="1" timestamp="2013-03-25T13:56:31Z" changeset="15491865" uid="322785" user="BCNorwich"/>
<node id="6" version="1" timestamp="2013-03-25T13:56:31Z" changeset="15491865" uid="322785" user="BCNorwich"/>
</test>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Будет кнопка, и если удержать на этой кнопке мышку секунду где-то 05 будет появляться окно с текстом
Проблема такова: банер запускается, но не работает Hide(); и Destroy(); у AdmobаСкрипт: