【问题标题】:Retriving certain attributes from html with xcode使用 xcode 从 html 中检索某些属性
【发布时间】:2012-07-12 06:25:50
【问题描述】:

我正在尝试从 html 页面获取 href 值

NSURL *url = [[searchBar.text stringByReplacingOccurrencesofString:@" " withString:@"+"]];
NSString *html = [NSString stringWithContentOfURL:url encoding:NSASCIIStringEncoding error:&error
NSLog(@"Html = %@",html);

到目前为止,到目前为止,在从 youtube 获取 html 并显示搜索结果第一页的 html 方面,它运行良好。

接下来我尝试删除一些我不需要的不需要的 HTML 标记,例如,,, 等。我想要剩下的就是标记和它们的值或数据。

所以我尝试过使用 NSScanner 和 Regex。但我似乎无法得到想要的结果。我现在正在尝试的代码是

NSScanner *scanner = [NSScanner scannerWithString:self];
[scanner setCharactersToBeSkipped:nil];
NSMutableSet *tags = [[NSMutableSet alloc] init];
NSString *tag;
do {    
tag = nil;      
      [scanner scanUpToString:@"<" intoString:NULL];        
      [scanner scanUpToString:@">" intoString:&tag];        

      if (tag) {            
                 NSString *t = [[NSString alloc] initWithFormat:@"%@>", tag];   
    [tags addObject:t];     

               }    
   } while (![scanner isAtEnd]);    

NSMutableString *result = [[NSMutableString alloc] initWithString:self];
NSString *finalString;  
NSString *replacement;  
 for (NSString *t in tags) {        
               replacement = @" ";      
                      if ([t isEqualToString:@"<a>"] ||
        [t isEqualToString:@"</a>"] ||  
              [t isEqualToString:@"<span>"] ||
        [t isEqualToString:@"</span>"] ||
        [t isEqualToString:@"<strong>"] ||
        [t isEqualToString:@"</strong>"] ||
        [t isEqualToString:@"<em>"] ||  
              [t isEqualToString:@"</em>"]||
                          [t isEqualToString:@"<script>"]||
                          [t isEqualToString:@"</script>"])

                          { 
                              replacement = @"";    
                    }
[result replaceOccurrencesOfString:t withString:replacement options:NSLiteralSearch MakeRange(0, result.length)];   


     }


finalString = [result stringByRemovingNewLinesAndWhitespace];

Convert formatted HTML text string to NSString parts 这是我参考的地方。但我仍然无法让它按照我需要的方式工作。我在同一个问题上被困了很多天,请帮助我。任何关于我应该如何去做的建议也会有很大帮助。谢谢前进。

【问题讨论】:

  • 您对链接帖子中的 NSString+HTML 类别有什么问题?我用过,效果很好。
  • 我只有纯文本出现,href 的值也被过滤掉了
  • 建议你根据自己的需要修改NSString+HTML。这远不是复杂的代码,他们已经为您完成了大部分工作:您只需要一些微调(从解析的标签中删除 标签)
  • 我应该编辑哪个部分? if 情况?

标签: iphone html xcode href


【解决方案1】:

最好的办法是修改链接帖子中的NSString+HTML 类别。例如,如果您不想想要删除&lt;a&gt; 标签,您可以将代码修改为如下内容:

将此插入到上面链接文件的第 67 行:

if ([t isEqualToString:@"<a>"] || [t isEqualToString:@"</a>"]) continue;

并从该行后面的 if 中删除 &lt;a&gt; 条件。

请随意阅读、分析和使用该代码,直到获得所需内容:总而言之,开源世界中最好的事情就是您可以从已经编写的代码中学习所有您不知道的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-14
    • 2011-11-20
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多