在ObjectiveC中解析Open Graph元属性/标签

时间:2015-06-19 15:38:48

标签: javascript ios open-graph-protocol

我在objectiveC中有一个iOS应用程序,它使用UIWebView加载网页。我想解析该网页的Open Graph元标记 -

<meta property="og:locale" content="en_US" />
<meta property="og:title" content="My Title" />
<meta property="og:site_name" content="My Content" />

使用以下代码,我可以遍历所有元标记并获取其内容,但如何检查我感兴趣的元属性?

NSString *resultStr = [self.viewWeb stringByEvaluatingJavaScriptFromString:
                      @"(function(){"
                       "var i, metaFields = document.getElementsByTagName(\"meta\"), result = [];"
                       "for (i = 0; i< metaFields.length; i++) {"
                                "result.push({\"content\": metaFields[i].content});"
                       "}"
                       "return JSON.stringify(result);"
                       "})();"
                       ];
NSArray *result = [NSJSONSerialization JSONObjectWithData:[resultStr dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
NSLog(@"result: %@", result);

例如,如果我只对“og:site_name”感兴趣,我该如何检查它?我尝试过“metaFields [i] .property”,但似乎无法通过这种方式访问​​属性。我想做一些像 -

"if (metaFields[i].property === \"og:site_name\")"

谢谢,

1 个答案:

答案 0 :(得分:1)

您是否尝试过对元素使用getAttribute DOM方法?类似的东西:

metaFields[i].getAttribute('property')