【问题标题】:Using NSScanner使用 NSScanner
【发布时间】:2012-07-04 18:21:57
【问题描述】:

我正在尝试扫描文本,但我不明白它是如何工作的,有人可以帮助我吗??

<a class="lightbox"  title ="elecciones mexico 2012" href="http://www.myWebpage.com/wp-content/uploads/2012/07/elecciones-mexico-2012.jpg"><img src="http://www.myWebpage.com/wp-content/uploads/2012/07/elecciones-mexico-2012.jpg" alt="" title="elecciones mexico 2012" width="643" height="391" class="aligncenter size-full wp-image-66795" /></a></p>
<p>I need this text</p>
<p> And this text.</p>
<p> Also this text! </p>

<p> I dont want this text </p>]]>

这样我的最终字符串将类似于: 我需要这段文字 而这段文字 还有这个文字!

提前致谢

【问题讨论】:

  • 您是否在本网站或网络上进行过搜索?好的第一步。
  • 是的,但我无法理解 NSScanner 的使用...
  • 你完全了解 Objective-C,还是对它不熟悉? Obj-C 可能很奇怪。 :) 你看过这个吗? developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/…
  • 查看侧边栏---------------------> 有十几个关于 NSScanner 的 Q+As。当然,它们与您需要做的事情相关。
  • 你想保留的文字有哪些显着特征?

标签: iphone objective-c nsscanner


【解决方案1】:

浪费你的镜头。这就是 NSXMLParser 存在的原因。

@interface TextParser: NSObject {
    NSMutableString *text;
}

- (id)init
{
    if ((self = [super init]))
    {
        text = [[NSMutableString alloc] init];
        NSXMLParser *parser = [[NSXMLParser alloc] initWithData:[string dataUsingEncoding:NSUTF8Stringaencoding];
        parser.delegate = self;
        [parser parse];

        // here text will contain all the text contained by the XML tags
    }
    return self;
}

- (void)parser:(NSXMLParser *)p foundCharacters:(NSString *)chars
{
    [text appendString:chars];
}

【讨论】:

    【解决方案2】:

    嗯,我知道的 NSScanner (MacOS) 并不特别适合您正在寻找的那种解析。它只是通过一个字符串并返回“令牌”,例如由它们组成的字符集定义的数字或字符串。这对于处理字符串示例中的标签并不是特别有用,除非您愿意接受很高的错误几率。

    在这种情况下,您可能会执行类似“读取由除 之外的任何内容组成的字符串”之类的操作并丢弃它等等,直到你已经走到了尽头。根据您实际尝试解析的内容,这可能会或可能不会起作用;这绝对不是从 HTML 中获取纯文本的“方法”。

    它也不是 XML(标签不匹配),所以使用 NSXML 可能也不是一个选项......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 2011-10-14
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多