NSXmlParser iPhone sdk解析数据问题

时间:2011-07-26 21:00:58

标签: iphone objective-c ios4 nsxmlparser

我正在从rss解析一些数据,但部分数据正在被部分解析,所以尝试追加字符串,但它在这里不起作用是一些代码:

-(id)loadXmlByURL:(NSString *)url{
titles = [[NSMutableArray alloc]init];


NSURL *URL = [NSURL URLWithString:url];
parser = [[NSXMLParser alloc]initWithContentsOfURL:URL];
parser.delegate = self;

[parser parse];

return self;
}


-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *) elementName namespaceURI:  (NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *) attributeDict{
 if ([elementName isEqualToString:@"item"])


{
currentTitle = [Titles alloc];
titles = [[NSMutableArray alloc]init];

}

}

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


 {
if ([elementName isEqualToString:@"title"]) {
     currentTitle.title = currentNodeContent;
     NSLog(@"%@",currentNodeContent);

 }

}

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


 NSMutableString *st = [string mutableCopy];
 if (!currentNodeContent) {
     // init the ad hoc string with the value     
     currentNodeContent = [[NSMutableString alloc] initWithString:string];
 } else {
     // append value to the ad hoc string    

     [currentNodeContent appendString:string
      ];
 }
     currentNodeContent = [[st stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]mutableCopy];

 }

1 个答案:

答案 0 :(得分:0)

如果我正确阅读您的代码,那么

 currentNodeContent = [[st stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]mutableCopy];

将始终覆盖您在if (!currentNodeContent) {行中所做的工作。

所以你的代码可能正确地解析了字符串,但无论如何,它总是用修剪过的字符串覆盖。