2010-05-25 98 views
0

我知道,大部分時間使用NSXMLParser解析帶有objective-c的XML。 但是如果你只需要讀一個元素呢。使用NSXMLParser聽起來像是一個重載。objective-c iphone XML解析一個元素

問題是,上傳圖片時,flickr API不會使用JSON作爲響應。所以我現在的反應是:

<rsp stat="ok"> 
<photoid>4638598522</photoid> 
</rsp> 

我只需要知道的photoid,我想知道什麼是最好的解決方案是這樣的。

回答

4

下面是兩行代碼來獲取PHOTOID:使用正則表達式

NSString *source = @"<rsp stat=\"ok\"><photoid>4638598522</photoid></rsp>"; 
NSLog(@"photoid: %@", [[[[source componentsSeparatedByString:@"<photoid>"] objectAtIndex:1] componentsSeparatedByString:@"</photoid>"] objectAtIndex:0]); 
+0

謝謝。我已經修好了,但我的解決方案更好。 – 2010-05-26 07:53:33

0

將xml視爲字符串,並使用正則表達式來提取所需的元素。也許與RegexKitLite庫。您可以在gskinner's online regex tool的幫助下創建正則表達式。

可能只是這樣:

([0-9]) 
+0

XML解析?嗯... – dreamlax 2010-05-25 09:50:56

+0

它不是真正的XML解析,當你只是想提取一個屬性。我會將其描述爲屏幕抓取。 – Ross 2010-05-25 09:52:59

+0

是的。在這種情況下,它可能總是工作 – 2010-05-25 10:25:53

0
int main(int argc, char* argv[]){ 
    int num; 
    if (argc < 2) return -1; 
    printf("arg: %s", argv[1]); 
    sscanf(argv[1], "id>%d</", &num); 
    printf("result: %i", num); 
    if (result < 0) return -1; 
    return 0; 
} 

只需使用sscanf的。它應該做的伎倆就好。 (我認爲NSString有一個類似的方法,如果沒有,你可以從它抓取c char數組然後傳回)。

+1

我在stackoverflow上搜索了一下,發現這個鏈接:http://stackoverflow.com/questions/594797/how-to-use-nsscanner。 對我來說,這確實有用。感謝您將我放在正確的方向 – 2010-05-25 11:23:39