2011-11-16 7 views
13

HTML文字列をデコードしてNSStringに保存したい。フォーマットされたHTMLテキスト文字列をNSStringパーツに変換する

以下は、Googleの方向APIからの応答のHTML文字列です。

私は普通にHTML文字列を変換するために、以下の方法を使用している4 NSStrings(サイズの色のすべての情報を削除する)

Turn right onto Kennington Park Rd/A3 
Continue to follow A3 
Entering toll zone in 1.7 km at Newington Causeway/A3 
Go through 2 roundabouts 

次と4異なるNSStringsの配列におけるこのHTML文字列を格納する

teststring is Turn <b>right</b> onto <b>Kennington Park Rd/A3</b><div style="font-size:0.9em">Continue to follow A3</div><div style="font-size:0.9em">Entering toll zone in 1.7&nbsp;km at Newington Causeway/A3</div><div style="font-size:0.9em">Go through 2 roundabouts</div> 

テキスト。(html_responseは、サーバーからの応答があるとstringByConvertingHTMLToPlainTextは、カスタムクラスファイルで定義された方法である)

testString = (NSString*) [html_response stringByConvertingHTMLToPlainText]; 
NSLog(@"%@",testString); 

が、それは全体のSTRIを変換し、それを部分的に分割する代わりにコンソールで 出力は

Turn right onto Kennington Park Rd/A3Continue to follow A3 Entering toll zone in 1.7 km at Newington Causeway/A3 Go through 2 roundabouts 

だから私はこれを行うには、カスタムメソッドを記述する必要がありますでしょうか?どんな助けでも大歓迎です。

答えて

18

使用できるNSString categoryがあります。これはプロジェクトMWFeedParserの一部です。具体的には、ファイルNSString+HTMLを探します。

NSStringの+ HTMLのカテゴリはNSStringのクラスに次のメソッドを追加し、

- (NSString *)stringByStrippingTags; 
- (NSString *)stringWithNewLinesAsBRs; 
- (NSString *)stringByRemovingNewLinesAndWhitespace; 
- (NSString *)stringByDecodingHTMLEntities; 
- (NSString *)stringByEncodingHTMLEntities; 

あなたは、その後のようなものを試みることができる:

NSString *summary = [[[htmlString stringByStrippingTags] stringByRemovingNewLinesAndWhitespace] stringByDecodingHTMLEntities]; 

が、それは!幸運をお役に立てば幸いです:)

+0

あなたの答えに感謝します。あなたが示唆した方法では、私はHTML文字列がnsstringに変換されているが、私は4つの異なるnsstringを含む配列として格納する必要があります。どうすればいいですか?私は上記の方法をオーバーライドする必要はありませんか? – chatur

+0

divごとに1つの文字列? – Goles

関連する問題