Ошибка NSXMLParser

Я использую NSXMLParser для синтаксического анализа html-файла на стороне сервера (с использованием iphone sdk 3.0), и мой синтаксический анализатор прекращает синтаксический анализ после обнаружения какой-либо ошибки и вызывает сообщение делегата

  • (void) parser: (NSXMLParser *) parser parseErrorOccurred: (NSError *) parseError

Мой вопрос: как я могу проанализировать файл после обнаружения ошибки? Есть ли способ сделать это.

Спасибо


person vikas    schedule 13.11.2009    source источник


Ответы (2)


Вы не можете. Анализ останавливается при обнаружении ошибки. В любом случае было бы трудно понять, что означала остальная часть ошибочного XML-документа, поскольку значение чего-либо в одном месте в документе зависит от всего, что было до него (в данном случае, включая ошибку).

person Community    schedule 13.11.2009

Вы ищете синтаксический анализатор другого типа. "любой ценой" parser сможет делать то, что вы хотите. Если вы получаете XML из множества разных источников, это идеальный вариант.

Если у вас есть несколько источников, вы можете решить их проблемы. Например, если единственная проблема, с которой вы столкнулись, это то, что вам сказали, что это UTF-8, когда выясняется, что это ISO-8859-1, вы можете запустить его один раз, узнать, что он не работает из-за проблемы с символом, преобразовать XML из ISO-8859-1 в UTF-8 и попробуйте еще раз. Поскольку вы знаете, где была ошибка, вы можете попытаться исправить ее. Однако идти по этому маршруту довольно дорого.

person Epsilon Prime    schedule 17.11.2009