2009-10-23 4 views
1

Есть ли способ проанализировать XML-файл, который закодирован с помощью Windows-1254 с использованием NSXMLParser? Когда я пытаюсь, метод didStartElement не вызывается.Как разобрать XML-файл, который закодирован другим кодировщиком, отличным от utf-8, с использованием NSXMLParser в объекте-C?

Кодекс

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:webData]; 
XMLParser *parser = [[XMLParser alloc] initXMLParser: objectList]; 
[parser setReqType:reqType]; 
[xmlParser setDelegate:parser]; 
[xmlParser parse]; 

XML является

<?xml version="1.0" encoding="windows-1254" ?> 
<CANLIMACLAR> 
<CANLIMACLARROWS> 
<TARIH>19/10/2009 21:15</TARIH> 
<TAKIM1>Union Berlin</TAKIM1> 
<TAKIM2>Fürth</TAKIM2> 
<SONUC1>1</SONUC1> 
<SONUC2>2</SONUC2> 
<DK_DURUM>Maç Sonu</DK_DURUM> ... 
</CANLIMACLARROWS> ... 
</CANLIMACLAR> 
+0

Вы можете разместить свой код? И, возможно, пролог самого XML-файла? –

+0

NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: webData]; XMLParser * parser = [[XMLParser alloc] initXMLParser: objectList]; [парсер setReqType: reqType]; [xmlParser setDelegate: parser]; [xmlParser parse]; - - 19/10/2009 21:15 Union Berlin Фюрт mÃc Сону ... ... crazywood

ответ

-1

Я удалил <?xml version="1.0" encoding="windows-1254" ?> часть из данных XML, а затем я отправить его XmlParser, поэтому нет никаких проблем больше.

+0

Однако это не исправление - проблема в том, что данные не являются XML, а поставщику необходимо исправить его. – Mark

0

Не забудьте, если синтаксический анализ() возвращает NO вы можете проверить parseError, чтобы посмотреть, что случилось:

if ([parser parse] == NO) 
{ 
    NSError *error = [parser parserError]; 
    NSString *readableMessage = [error localizedDescription]; 
    NSLog(@"Error occurred: %@\n", readableMessage); 
} 
+1

Спасибо за ваш совет, я его реализовал, но я думаю, что в «[parser parseError] , это должно быть «[parser parserError]». – crazywood

+0

Правильно, вы - исправлены. –