-4

テキストをスキャンしようとしていますが、その仕組みがわかりません。誰か助けてくれませんか??

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

私の最終的な文字列は次のようになります。私はこのテキストが必要ですそしてこのテキストもこのテキストが必要です!

前もって感謝します

4

2 に答える 2

0

ええと、私が知っているNSScanner(MacOS)は、あなたが探している種類の構文解析には特に適していません。文字列を通過するだけで、数字や文字列のセットで定義された文字列のような「トークン」を返します。これは、エラーの可能性が高い場合を除いて、文字列の例のタグを処理するのに特に役立ちません。

その場合、おそらく「<以外で構成される文字列を読み取り」、それを結果の文字列に添付してから、「>以外で構成される文字列を読み取る」などのようにして、到達するまで破棄することができます。終わり。実際に解析しようとしているものに応じて、これは機能する場合と機能しない場合があります。HTMLからプレーンテキストを取得するのは間違いなく「方法」ではありません。

XMLでもない(タグが一致しない)ので、NSXMLを使用することもおそらくオプションではありません...

于 2012-07-04T18:34:03.177 に答える
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];
}
于 2012-07-04T18:30:48.683 に答える