我试图解析一个特定问题的堆栈溢出RSS提要:
https://stackoverflow.com/feeds/question/2110875
CXMLDocument *parser = [[CXMLDocument alloc] initWithData:sourceData options:0 error:nil];
NSArray *allEntries = [parser nodesForXPath:@"//entry" error:nil];
NSLog(@"Found entries: %d",[allEntries count]); //Returns 0
NSLog语句应该返回提要中所有条目的计数。在这种情况下,它应该是“3”,问题是它返回0。
我发现这段代码确实有效:
CXMLDocument *preParser = [[CXMLDocument alloc] initWithData:sourceData options:0 error:nil];
NSString *sourceStringUTF8 = [preParser XMLString];
[preParser release];
CXMLDocument *parser = [[CXMLDocument alloc] initWithData:[sourceStringUTF8 dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
NSArray *allEntries = [parser nodesForXPath:@"//entry" error:nil];
NSLog(@"Found entries: %d",[allEntries count]); //Returns 3, which is ok
但使用它似乎有点黑客(可能是),并引入了一些其他零星的bug。
据我所知,Xpath表达式是正确的。我已经用电脑检查过了
this
佩奇也是。
谁能帮我解决这个问题,或者给我指出正确的方向。