Сбой данных XML на числах - PullRequest
       1

Сбой данных XML на числах

0 голосов
/ 07 апреля 2011

привет, друзья
это мой xml файл

1)
<sDescrizione>Crociera nei fiordi</sDescrizione>

2)
<sDescrizione>Fiat 500</sDescrizione>

3)
<sDescrizione>Orologio donna Glam sport Tissot</sDescrizione>

4)
<sDescrizione>Buoni La Rinascente 1000€</sDescrizione>

5)
<sDescrizione>Buoni Unieuro 1000€</sDescrizione>

это то, что я хочу получить из этого XML-файла, используя метод синтаксического анализа CXML первые 3 заголовка успешно извлечены, но когда они появляются на 4-м, это выдает ошибку в моей консоли, как это

Сущность: строка 80: ошибка синтаксического анализатора: неверный ввод UTF-8, укажите кодировку!

Байт: 0x80 0x5D 0x5D 0x3E

  <sDescrizione><![CDATA[Buoni La Rinascente 1000\200]]></sDescrizione>
                                                 ^

это мой восстановительный код: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; CXMLDocument * xmlParser = [[[CXMLDocument alloc] initWithData: параметры данных: 0 ошибка: ноль] авто-выпуск];

NSArray *resultNodes = [xmlParser nodesForXPath:@"//premio" error:nil];

for (CXMLElement *resultElement in resultNodes) {

    for (int j=0; j<[resultElement childCount]; j++) {
        NSString *tagName = [NSString stringWithString:[[resultElement childAtIndex:j] name]];


        if ([tagName isEqualToString:@"sDescrizione"])
        {
            NSString *temp = [[resultElement childAtIndex:j] stringValue];
            [catArray addObject:temp];
        }
        else if([tagName isEqualToString:@"idPremioSodexho"])
        {
            NSString *trmp = [[resultElement childAtIndex:j] stringValue];

        }
    }


}

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Похоже, что XML-файл отсутствует в UTF-8, а CXMLDocument предполагает, что это так. Когда он попадает в знак евро, он падает. Установите правильную кодировку в заголовке файла XML. Если файл XML закодирован в соответствии с ISO 8859-1, установите заголовок следующим образом:

<?xml version="1.0" encoding="ISO-8859-1"?>

Это позволит CXMLDocument правильно интерпретировать символы / кодовую страницу вашего XML-документа.

0 голосов
/ 06 августа 2012

Я думаю, что вы столкнулись с проблемой из-за неправильных наборов символов.

Смотрите, вот строка кода, которую вы использовали.

 // when you don't specify any encoding, TouchXML will use NSUTF8Encoding as default
 // which may lead to some problems 
 CXMLDocument *xmlParser = [[[CXMLDocument alloc] initWithData:data options:0 error:nil] autorelease];

 // So, I recommend you to use following line of code, which may not lead you with messy situations.
 CXMLDocument *doc = [[CXMLDocument alloc] initWithData:[request responseData] encoding:[request responseEncoding] options:0 error:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...