2009-06-30 2 views
3

Я использую NSXMLParser для анализа XML-документов сервера. Они кодируются как UTF8. Моя проблема заключается в том, что NSXMLParser разбивается на umlauts (ä, ö, ü) и запускает новый элемент.NSXMLParser shreds umlauts (ä, ö, ü)

Например:

лосен - NSXMLParser ---> L + OSEN

Как получить NSXMLParser читать мой умлаут слово полностью, как и все остальные слова.

С уважением

+1

Вы хотите сказать, что станет <ösen>? Или что парсер возвращает два текстовых узла: «L» и «ösen»? –

+0

Парсер дает мне две строки для найденных символов: Итак, делегат найден. Символы: вызывается для «L» и «ösen». Я хочу, чтобы синтаксический анализатор отправлял делегат только один раз для полной строки. – Stefan

ответ

8

Извините, но на основе вашего комментария к исходному вопросу (foundCharacters, получающий текст в двух вызовах) парсер ведет себя отлично. Смотрите в разделе «Обсуждение» для синтаксического анализа: foundCharacters: метод цитируемый ниже:

Объект анализатор может послать делегата несколько парсер: foundCharacters: сообщения, чтобы сообщить символы элемента. Поскольку строка может быть только частью общего содержимого символа для текущего элемента, вы должны добавить его к текущему накоплению символов до тех пор, пока элемент не изменится.

Как вы можете видеть, синтаксический анализатор может передавать делегат персонажам на столько фрагментов, сколько сочтет нужным.

1

Я столкнулся с этим вопросом с испанскими символов в этой строке:

  • (аннулируются) анализатор: (NSXMLParser *) анализатор foundCharacters: (NSString *) струнной

Я уверен, что если вы найдете раздел найденных символов хорошо работающим с функцией didEndElement, все будет в порядке.

3

foundCharacters: не поделился над тем тегами, вам необходимо вникнуть в символы, переданные в следующий звонок до didEndElement.