我試圖解析一個具體問題的堆棧溢出RSS提要: https://stackoverflow.com/feeds/question/2110875解析使用TouchXML SO RSS提要,沒有<entry>標籤發現
對於這個我使用TouchXML庫。似乎是在下面的代碼中的問題:
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應該返回所有條目的計數的Feed中的在這種情況下,它應該是「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
但是使用這個似乎哈克(大概是),並介紹其他一些零星的錯誤。
據我所知,Xpath表達式是正確的。我也使用this頁面進行了檢查。
任何人都可以幫助我解決這個問題,或者指出我在正確的方向。
謝謝。
我記錄了一條錯誤消息,它是空的,所以沒有錯誤。問題在於TouchXML根本不會爲Xpath語句返回任何節點,而AFAIK只需找到它們即可。 – Rengers 2010-02-03 18:34:01