SQLITE Insert возвращает значение с дополнительной строкой

1

При анализе данных я вставляю данные в sqlite. Но по какой-то причине, когда я запускаю запрос SELECT, он возвращает меня с дополнительной строкой и вкладкой. Когда я пишу этот запрос, он вставляет данные правильно, но с дополнительными пробелами.

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
   namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict {

  if([elementName isEqual:@"root"]) {
}

else if([elementName isEqualToString:@"value"]) {
    value = [[Value alloc] init] ;
}
}

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

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

    }
    }

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
   namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

if([elementName isEqualToString:@"root"])
    return;


if([elementName isEqualToString:@"value"]) {

    NSString *sqlQuery = [NSString stringWithFormat:@"INSERT OR REPLACE INTO DETAIL(ID,KEY, TITLE) VALUES ('%@','%@','%@');", key, parent_key, title];
    const char *insert_sql = [sqlQuery UTF8String];
    sqlite3_exec(db, insert_sql, NULL, NULL, NULL);
}



else if([elementName isEqualToString:@"key"])
    [value setValue:finalValue forKey:elementName]

[trueValue release];
trueValue = nil;

}

Как я могу ЗАМЕНИТЬ дополнительные пробелы в основном так: "\n\t\t\t" с "" перед этим оператором для всех строк?

  • 0
    Почему 5% и 3 значения?
  • 0
    обновлено !!! извините за опечатку!
Теги:
sqlite3
iphone
insert

2 ответа

1
Лучший ответ

У меня была аналогичная проблема, которую я исправил, обрезая все пробельные символы следующим образом:

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

    if(!trueValue) 
        trueValue = [[NSMutableString alloc] initWithString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
    else
        [trueValue appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];

}
  • 0
    спасибо Джонни это сработало !!!
0

Попробуйте следующее:

[string stringByReplacingOccurrencesOfString: @ "\n\t\t\t" withString: @""]

  • 0
    jschmidt: я обновил свой код Как я могу избежать этих пробелов при разборе и вставке данных?
  • 0
    Вы можете обрезать символы до конца, если это всегда известное количество символов. Или вы можете использовать тот же метод выше, чтобы удалить символы до выполнения вашего запроса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню