Разбор XML с дополнительными пробелами

У меня есть файл XML, который выглядит так:

<?xml version="1.0"?>
<categories>
   <category id="1">
      <category_name>Banks</category_name>
   </category>
   <category id="4">
      <category_name>Restaurants</category_name>
   </category>
</categories>

Метод [xmlParser parse] возвращает TRUE без ошибок. Но когда я распечатываю каждый элемент, я получаю следующие результаты:

Processing characters: 

    Restaurants

Обратите внимание на пустую строку и небольшой отступ «Рестораны». Мой метод foundCharacters распечатывает приведенное выше.

 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {

if(!currentElementValue)
    currentElementValue = [[NSMutableString alloc] initWithString:string];
else
    [currentElementValue appendString:string];

NSLog(@"Processing characters: %@", currentElementValue);
}

Это вызывает отступ текста в моем UITableViewCell - с чего бы это?

Свойство imageView не устанавливается.

Спасибо Джо


person joec    schedule 04.12.2009    source источник


Ответы (3)


Я использовал следующее, чтобы решить эту проблему

NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

Это сработало

person joec    schedule 05.12.2009

Я думаю, что происходит то, что все, что пишет метод foundCharacters, не очищается при обнаружении начала нового элемента, поэтому пробелы от отступов тегов все еще висят. Если вы очистите его только при поиске конца элемента, вы получите результаты, подобные тому, что вы описываете.

person Nathan Hughes    schedule 04.12.2009
comment
Точнее, программа очищает строку в начале элемента category (именно поэтому в выходных данных примера не отображается «Banks»), но не в начале элемента category_name. - person Peter Hosey; 05.12.2009
comment
Да, всякий раз, когда вы сталкиваетесь с началом нового элемента, вы должны очистить строку. - person Nathan Hughes; 05.12.2009

Есть ли свойство ignoreWhiteSpace, которое вы можете использовать?

person Shawn Steward    schedule 04.12.2009