2011-06-17 8 views
1

データの解析中にデータをsqliteに挿入します。しかし、何らかの理由でSELECTクエリを実行すると、余分な行とタブスペースが返されます。このクエリを書くと、データは正しく挿入されますが余分なスペースがあります。SQLite Insertは余分な行で値を返します

- (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つの値がありますか? – meggar

+0

更新!!!タイプミスのためにsrry! – lifemoveson

答えて

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

ジョニーに感謝それは働いた! – lifemoveson

0

これを試してみてください:

[文字列stringByReplacingOccurrencesOfString:@ "\ nは\ T \ T \ T" withString: "" @]

+0

jschmidt:自分のコードを更新しました。解析してデータを挿入する際に、これらのスペースを避けるにはどうすればよいですか? – lifemoveson

+0

文字は常に既知の文字数であれば、最後から切り捨てることができます。または、上記の同じメソッドを使用して、クエリを実行する前に文字を削除することもできます。 – jschmidt

関連する問題