从HTML文件中提取所有<script>标记并将其存储在NSArray- Objective C </script>中

时间:2012-03-26 08:48:35

标签: iphone html objective-c ios

我正在尝试获取所有脚本标记的src,并且我想将其存储在数组中。我真的很感激这些任何帮助真的很感激。

    <script type="text/javascript" src='//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'></script>
    <script type="text/javascript" src='static/tabthemes/js/json2.js'></script>
    <script type="text/javascript" src='static/tabthemes/js/underscore.min.js'></script>
    <script type="text/javascript" src='static/tabthemes/js/backbone.min.js'></script>
    <script type="text/javascript" src='static/tabthemes/js/mustache.js'></script>
    <script type="text/javascript" src='static/tabthemes/js/jquery.wipetouch.js'></script>
    <script type="text/javascript" src='/static/tabthemes/js/spin.js'></script>

有人请帮我这个!! :(

2 个答案:

答案 0 :(得分:2)

您可以尝试使用NSRegularExpression,例如:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@" src='([^.]*)'" options:NSRegularExpressionCaseInsensitive error:&error];

然后检查NSRegularExpression reference以查找与实际数据匹配的方法。在您的情况下,方法

- (NSArray *)matchesInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range

应该完全按照你的目标行事。

答案 1 :(得分:2)

你也可以尝试一种肮脏的方式:将字符串拆分为你发现的一些标记(这里我使用src='然后使用最后一个引号)。它适用于您提供的字符串,但它不是很安全。您应该更喜欢之前给出的正则表达式方法。

以下是您可以尝试的代码:

    NSMutableArray *retArray = [[NSMutableArray alloc] init];
    NSArray *components = [string componentsSeparatedByString:@"src='"];
    for(int i = 1; i < components.count; i++)
    {
        NSArray *innerComponents = [[components objectAtIndex:i] componentsSeparatedByString:@"'"];
        [retArray addObject:[innerComponents objectAtIndex:0]];
    }