我正在从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];
}
答案 0 :(得分:0)
如果我正确阅读您的代码,那么
行 currentNodeContent = [[st stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]mutableCopy];
将始终覆盖您在if (!currentNodeContent) {
行中所做的工作。
所以你的代码可能正确地解析了字符串,但无论如何,它总是用修剪过的字符串覆盖。