0

Anil_Ambani に関する詳細を取得するために、「action=query&prop=revisions&rvprop=content&titles=%@&format=json&redirects」API を使用しました。それに応じて、次の辞書を取得しました

<i> query =     {
    normalized =         (
                    {
            from = "Anil_Ambani";
            to = "Anil Ambani";
        }
    );
    pages =         {
        1222313 =             {
            ns = 0;
            pageid = 1222313;
            revisions =                 (
                                    {
                    "*" = "{{BLP sources|date=June 2012}}\n{{Infobox person\n| name                     = Anil Ambani \n| image            =AnilAmbani.jpg\n| image_size       = \n| caption              = Ambani in 2009\n| birth_date       = {{Birth date and age|1959|6|4|df=y}}\n| birth_place      = [[Mumbai]], [[Maharashtra]], [[India]]\n| nationality      = Indian\n| occupation       = Chairman of [[Anil Dhirubhai Ambani Group]] \n| networth         = {{loss}} [[United States dollar|$]]5.2 billion (2012)<ref name=\"forbes.com\">[http://www.forbes.com/profile/anil-ambani/.] Forbes.com. Retrieved April 2013.</ref> \n| residence        = Mumbai, Maharashtra, India\n| alma_mater       = [[Warwick Business School]]<br />[[Wharton School of the University of Pennsylvania|The Wharton School]]\n| parents          = [[Dhirubhai Ambani]]<br>Kokilaben Ambani\n| brother          = [[Mukesh Ambani]]\n| spouse           = [[Tina Ambani]]\n|

" "の値はNSStringです。" " の値

<i>$3 = 0x0755bb50 {{BLP sources|date=June 2012}}
{{Infobox person
| name             = Anil Ambani 
| image            =AnilAmbani.jpg
| image_size       = 
| caption          = Ambani in 2009
| birth_date       = {{Birth date and age|1959|6|4|df=y}}
| birth_place      = [[Mumbai]], [[Maharashtra]], [[India]]
| nationality      = Indian</i>

今、文字列をフィルタリングして、名前、生年月日などを取得したいと思います。私は試しました

<i>NSArray *arr=[htmlSrc componentsSeparatedByString:@"|"]
for (int i=2; i<mutArr.count; i++)
{
 NSArray *DictKeyValueArray=[str componentsSeparatedByString:@"="];
 [mainDict setObject:[DictKeyValueArray objectAtIndex:1] forKey:[DictKeyValueArray    objectAtIndex:0]];
}

しかし、生年月日以降にクラッシュしています。「|」があるから 生年月日と年齢の後。したがって、生年月日以降はキーと値のペアを取得できません。

文字列をフィルタリングする別の方法を提案してください。

4

1 に答える 1

0

取得している応答は辞書形式です。次に、基本的に文字列であるキー「*」の値を取得しています。しかし、その文字列にはHTML 値が含まれています。この HTML は、主にアプリのUIWebViewにコンテンツを表示するためのものです。

ここで、名前、生年月日などの特定のキーの値を取得する質問について
:は Anil Ambani ですが、応答や HTML 値など何でもかまいません。
したがって、特定のキーの値を取得する明確な方法はないと思います。

更新:-
2 つの部分文字列の間の部分文字列を取得するには、これを使用できます:-

-(NSString*)useScannerToGetSubstring:(NSString*)strYourString StartString:(NSString*)startString  EndString:(NSString*)endString
{
    NSString * strTest = strYourString;
    NSMutableArray *substrings = [NSMutableArray new];
    NSScanner *scanner = [NSScanner scannerWithString:strTest];
    [scanner scanUpToString:startString intoString:nil]; 
    while(![scanner isAtEnd]) {
        NSString *substring = nil;
        [scanner scanString:startString intoString:nil]; 
        if([scanner scanUpToString:endString intoString:&substring]) {
            [substrings addObject:substring];
        }
        [scanner scanUpToString:startString intoString:nil];
    }
    if ([substrings count]>0) 
    {
        return [substrings objectAtIndex:0];
    }
    return nil;
}
于 2013-07-25T08:19:54.170 に答える