2010-05-25 112 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