使用NSScanner

时间:2012-07-04 18:21:58

标签: iphone objective-c nsscanner

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

<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>]]>

这样我的最终字符串就像: 我需要这个文字 而这篇文章 还有这个文字!

提前致谢

2 个答案:

答案 0 :(得分:0)

浪费你的射门。这就是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];
}

答案 1 :(得分:0)

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

在这种情况下,您可能会执行类似“读取由&lt;”之外的任何内容组成的字符串的操作并将其附加到结果字符串,然后“读取由&gt;之外的任何内容组成的字符串”并丢弃等等,直到你到达终点。根据您实际尝试解析的内容,这可能会也可能不会起作用;绝对不是从HTML中获取纯文本的“方式”。

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