我使用了“action = query& prop = revisions& rvprop = content& titles =%@& format = json& redirects”api来获取有关Anil_Ambani的详细信息。作为回应,我得到了以下字典
<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>
现在我想过滤字符串以获取名称,birth_date等。我试过
<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]];
}
但是在birth_date之后它崩溃了。因为有“|”出生日期和年龄后。所以我不会在birth_date之后获得任何键值对。
请建议我过滤字符串的其他方法。
答案 0 :(得分:0)
您获得的答案是字典形式。然后,您正在检索键“*”的值,它基本上是一个字符串。但是,该字符串包含 HTML值。此HTML主要用于在我们的应用中显示 UIWebView 中的内容。
现在,为了你的问题获得特定键的值,即name,birth_date等:-
我们得到的HTML字符串不明确,因为它会在您更改输入字(搜索的单词)时更改,此处输入的单词是Anil Ambani,但它可以是任何内容,因此响应和HTML值。<登记/>
因此,我认为没有任何明确的方法来获取特定密钥的值。
更新: -
要获得两个子字符串之间的子字符串,可以使用: -
-(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;
}