2011-11-16 27 views
13

Tôi muốn giải mã chuỗi HTML và lưu trữ nó trong NSString.Chuyển chuỗi văn bản HTML đã định dạng thành các phần NSString

sau đây là chuỗi html cho một trong các phản hồi từ hướng api của google.

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> 

Tôi muốn để lưu trữ chuỗi html này trong mảng của 4 NSStrings khác nhau với sau 4 NSStrings (loại bỏ tất cả thông tin cho màu sắc kích thước)

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 

Tôi đã sử dụng phương pháp sau đây để chuyển đổi chuỗi html để đồng bằng văn bản. (html_response là phản hồi từ máy chủ và stringByConvertingHTMLToPlainText là phương pháp được xác định trong tập tin lớp tùy chỉnh)

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

nhưng nó chuyển đổi toàn bộ STRI ng thay vì phá vỡ nó trong các bộ phận. đầu ra tại bảng điều khiển là

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 

Vì vậy, tôi cần phải viết phương thức tùy chỉnh để thực hiện việc này? Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào.

Trả lời

18

Có NSString rất đẹp category mà bạn có thể sử dụng, nó là một phần của dự án MWFeedParser. Cụ thể hơn, bạn tìm tập tin NSString+HTML.

Phạm trù NSString + HTML cho biết thêm các phương pháp sau đây để các lớp NSString,

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

Sau đó bạn có thể thử một cái gì đó như:

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

Hy vọng nó giúp !, chúc may mắn :)

+0

cảm ơn câu trả lời của bạn. theo phương pháp bạn đề xuất, tôi có chuỗi html được chuyển thành nsstring nhưng tôi cần lưu trữ nó dưới dạng mảng chứa 4 chuỗi nsstring khác nhau. Bạn có biết làm thế nào tôi có thể làm điều đó? Tôi có neeed để ghi đè lên các phương pháp trên? – chatur

+0

Một chuỗi trên mỗi div? – Goles

Các vấn đề liên quan