2010-03-02 14 views
14

मुझे इंटरनेट से टेक्स्ट मिल रहा है और इसमें एचटीएमएल इकाइयां हैं (यानी ó = ó)। मैं इस पाठ को एक कस्टम आईफोन सेल में दिखाना चाहता हूं।उद्देश्य-सी: एचटीएमएल इकाइयों को कैसे बदलें?

मैंने अपने कस्टम सेल में UIWebView का उपयोग करने का प्रयास किया है, लेकिन मैं एक मल्टीलाइन UILabel का उपयोग करना पसंद करता हूं। समस्या यह है कि मुझे इन HTML इकाइयों को बदलने का कोई तरीका नहीं मिल रहा है।

+0

आप इस प्रश्न के साथ पहले नहीं हैं। इस धागे पर एक नज़र डालें: http://stackoverflow.com/questions/1105169/html-character-decoding-in-objective-c-cocoa – Shingoo

+0

मैंने पहले यह प्रश्न पढ़ा है, लेकिन यह उपयोगकर्ता संख्यात्मक HTML इकाइयों के लिए पूछ रहा है जो प्रतिस्थापित करना आसान है। संख्यात्मक कोड वही है और आपको बस आस-पास के पात्रों को प्रतिस्थापित करना होगा। – arielcamus

उत्तर

36

मेरा NSString category for HTML देखें। यहां उपलब्ध विधियां हैं:

- (NSString *)stringByConvertingHTMLToPlainText; 
- (NSString *)stringByDecodingHTMLEntities; 
- (NSString *)stringByEncodingHTMLEntities; 
- (NSString *)stringWithNewLinesAsBRs; 
- (NSString *)stringByRemovingNewLinesAndWhitespace; 
+2

ऐसा लगता है कि यह श्रेणी मैक श्रेणी के लिए Google टूलबॉक्स का उपयोग कर रही है। – user1071136

+0

हां यह एटीकोडिंग/डीकोडिंग एचटीएमएल इकाइयों के लिए जीटीएम का उपयोग करता है। –

+0

[इस] (https://github.com/mwaterfall/MWFeedParser/issues/72) समस्या के बारे में क्या? – Praveenkumar

1

क्या आप बस NSMutableString की replaceOccurrencesOfString:withString:options:range: विधि का उपयोग कर सकते हैं? gtm_stringByUnescapingFromHTMLGTMNSString+HTML.h और GTMNSString+HTML.m में परिभाषित:

+0

इस संदेश का उपयोग करके मुझे एक संभावित सरणी के साथ एक सरणी को परिभाषित करने के लिए मजबूर करें जो कि बहुत भारी काम है। हालांकि, मैं इस सरणी को अन्य प्रोग्रामिंग भाषा में ढूंढने का प्रयास करूंगा और इसे उद्देश्य-सी – arielcamus

12

Google Toolbox for Mac एक iPhone संगत NSString इसके अलावा कि आप के लिए यह कर देगा भी शामिल है। यदि आप _GTMDevLog और #import "GTMDefines.h" पर कॉल को टिप्पणी करते हैं तो आपको केवल इन दो फ़ाइलों को अपनी प्रोजेक्ट में जोड़ना होगा।

+1

में उपयोग करूँगा आपको _GTMDevLog पर टिप्पणी करने की आवश्यकता नहीं है; आप इसे अपने आप जो कुछ भी चाहते हैं उसे परिभाषित कर सकते हैं। (नीचे dmaclach के लिए धन्यवाद।) –

2

मैट स्टीवंस के उत्तर पर विस्तार करने के लिए (क्योंकि मुझे अभी तक टिप्पणी करने की अनुमति नहीं है), आपको _GTMDevLog पर टिप्पणी करने की आवश्यकता नहीं है, क्योंकि यह जानबूझकर स्थापित है ताकि आप इसे अपने आप परिभाषित कर सकें जो भी आप चाहते हैं ।

6

आप एक विधि बना सकते हैं जो HTML इकाइयों को आपके द्वारा दिए गए तारों के साथ प्रतिस्थापित कर सके।

+(NSString*)parseString:(NSString*)str 
{ 
    str = [str stringByReplacingOccurrencesOfString:@"–" withString:@"-"]; 
    str = [str stringByReplacingOccurrencesOfString:@"”" withString:@"\""];   
    str = [str stringByReplacingOccurrencesOfString:@"“" withString:@"\""];   
    str = [str stringByReplacingOccurrencesOfString:@"ó" withString:@"o"];   
    str = [str stringByReplacingOccurrencesOfString:@"'" withString:@"'"];     
    return str; 
} 

स्ट्रिंग को पैरामीटर के रूप में भेजकर स्ट्रिंग को प्रतिस्थापित करने के लिए इस विधि को कॉल करें।

संबंधित मुद्दे