Существует много RSS-каналов, которые содержат недопустимый XML, обычно потому, что они были взломаны на стороне сервера с помощью шаблонов HTML кем-то, кто не понимал XML. Я видел неправильно экранированный (или не экранированный) контент поста HTML, отсутствующие закрывающие теги, плохо вложенные теги и т. Д.
Если вы хотите иметь возможность разбирать произвольные каналы, вы должны очистить плохой XML. Обычным способом является использование библиотеки "htmlTidy", которая входит в состав ОС. Это может очистить как XML, так и HTML.
В этом примере вы используете NSXMLParser - я понятия не имею, почему. Это низкоуровневый API, и он не поддерживает приведение в порядок. Я бы предложил вместо этого использовать NSXMLDocument. В этом API есть флаг, который скажет ему использовать tidy при разборе XML. Этот API также возвращает XML в виде удобного дерева элементов, с которым легко работать.