2013-10-31 43 views
1

此問題是this question的擴展。如何防止在解析xml時將 n附加到NSmutable字符串?

現在我使用用於解析XML數據下面的代碼,

-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    rValue = [[NSMutableString alloc]init]; 
    isTag = FALSE; 
    if ([elementName caseInsensitiveCompare:@"BusinessName"] == NSOrderedSame) 
     isTag=YES; 

} 


-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)strin{ 
if (isTag) 
     [rValue appendString:strin]; 
} 

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

    if([elementName caseInsensitiveCompare:@"BusinessName"] == NSOrderedSame) 
     [myarray addObject:rValue]; 
} 

-(void) parserDidEndDocument:(NSXMLParser *)parser 
{ 
    NSLog(@"%@",myarray); 
} 

rValue是一個的NSMutableString;

打印我的數組後,它看起來像這樣,

(
"Book Store\n ", 
"Birch river grill\n ", 
"PIC\n ", 
"Drink Juice\n ", 
"Cofee Cafee\n ", 
"Diag Block\n ", 
"Delici Store\n ", 
"Rubbit Rabbit\n\n\n ", 
"Spoon Fork\n ", 
"Travel Sea\n\n ", 
"Water Melocious\n\n\n ", 
"Lazee Fish\n\n\n\n ", 
"Allow\n ", 
"Enjoy Traveling\n ", 
"Grwing Three\n ", 
"Diz Cow\n\n ", 
"Wheeler Marine\n\n\n " 
) 

如何防止增加\n s到NSMutable字符串? 即,我需要檢查字符串是否有\n或不?

有時這些\ n出現在NSMutableString的前綴,任何建議,將不勝感激。

回答

4

試圖改變這個方法:

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

if([elementName caseInsensitiveCompare:@"BusinessName"] == NSOrderedSame) 
    [myarray addObject:[rValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 
1

修改您的條件: -

-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)strin{ 
if (isTag) 
{ 
    NSString *newStr=[strin stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] 
    [rValue appendString:newStr]; 
} 
    }