【问题标题】:Removing parts from HTML page in UIWebVIew从 UIWebVIew 中的 HTML 页面中删除部分
【发布时间】:2011-09-29 13:15:28
【问题描述】:

我正在尝试从 html 页面中删除文本,并且我正在使用以下代码:

NSRange *r;
while ((r = [commentsOnly rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound) {
        commentsOnly = [commentsOnly stringByReplacingCharactersInRange:r withString:@""];
        NSLog(@"clearing");
    }

它完美地删除了 html 标签,但是我怎样才能只删除一个标签呢?例如,titlep。我不想只删除我的标签。我想删除开始标签(&lt;p&gt;)、两个标签之间的信息和结束标签(&lt;\p&gt;)。

【问题讨论】:

  • 开始标签+内容+结束标签统称为元素

标签: html objective-c uiwebview nsstring


【解决方案1】:

如果我理解您的问题,可能会对您有所帮助:

NSString *string = @"</body>", *htmlString = @"ddsfsdf_<body>_sdfsfd_<body>ffff</body></body>";
NSRange range = [htmlString rangeOfString:string];
if (range.location != NSNotFound)
{
    range.length += range.location;
    range.location = 0;

    string = @"<body>";
    NSRange rangeOpen = [htmlString rangeOfString:string options:NSBackwardsSearch range:range];
    if (rangeOpen.location != NSNotFound)
    {
        range.length -= rangeOpen.location;
        range.location = rangeOpen.location;
        htmlString = [htmlString stringByReplacingCharactersInRange:range withString:@""];
        NSLog(@"%@", htmlString);
    }
}

【讨论】:

  • 我想删除它们之间的标签和文本。例如:

    文字文字

  • 根据您的评论更新了我的答案
  • 它工作得很好,但是当我用 while 替换时,它不起作用
  • Кстати, Некто, только сейчас понял, что нам не обязательно говорить по-английски。 Я пытаюсь вставить while, чтобо убрать несколько подобных тегов, но в результате приложение крашится, либо просто ное начинает>
  • Покажи цикл while свой。 Все же лучше на английском писать, так как международная комьюнити。
【解决方案2】:

使用stringByEvaluatingJavaScriptFromString:UIWebView 中执行JavaScript 来执行此操作。这样的工作量要少得多,而且更可靠,因为它将使用 WebKit 的 HTML 解析器而不是简单的字符串替换。

【讨论】:

  • 他想删除标签.. 'stringByEvaluatingJavaScriptFromString' 在这里有什么帮助?
  • UIWebView 显示页面时,会将其解析为 DOM。您执行的任何 JavaScript 都可以访问 DOM 以随意更改它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
相关资源
最近更新 更多