Так что после того, как я сделал быстрый пример с делегатом, который просто распечатывает, что происходит во время разбора, я не вижу ничего плохого в том, что анализируется.
Я подозреваю, однако, что вы полагаетесь на неверное ожидание того, что между вызовами didStartElement...
и didEndElement...
вы должны получить вызов foundCharacters...
с пустой строкой? Мой вопрос основан на том, как вы сформулировали заголовок своего вопроса, потому что не существует такого понятия, как «пустое значение». Либо есть значение, либо его нет.
Представьте, что вместо вашего XML содержится вместо точно эквивалентного . Вы по-прежнему получаете уведомления о начале / завершении.
Вы должны создать свой NSMutableString
(предположительно, тип, который вы используете для элементов) в didStartElement...
, когда найден , добавление к этой строке, если вызывается IF foundCharacters...
(it может вызываться более одного раза со значением в чанках) и помещать его в массив, когда это будет сделано на didEndElement...
.
Если вы действительно хотите быть более устойчивым, вы также захотите обнаружить условие ошибки, если обнаружите начало нового элемента до окончания строки, предполагая, что это на самом деле ошибка для вас.