আইফোনের একটি এনএসএসস্ট্রিং থেকে এইচটিএমএল ট্যাগগুলি সরান


106

ইন HTML tagsথেকে সরানোর বিভিন্ন উপায় NSStringরয়েছে Cocoa

একটি উপায় হ'ল স্ট্রিংটিকে একটিতে রেন্ডার করা NSAttributedStringএবং তারপরে রেন্ডার করা টেক্সটটি ধরা।

অন্য উপায়টি হ'ল NSXMLDocument's- objectByApplyingXSLTStringএকটি XSLTরূপান্তর প্রয়োগ করার পদ্ধতি যা এটি করে।

দুর্ভাগ্যক্রমে, আইফোন সমর্থন করে না NSAttributedStringবা NSXMLDocumentHTMLআমার কাছে রেজেক্স বা স্বাচ্ছন্দ্যের ব্যবহারটি স্বাচ্ছন্দ্য বোধ করার জন্য অনেকগুলি এজ কেস এবং ত্রুটিযুক্ত নথি রয়েছে NSScanner। কারও কি এর সমাধান আছে?

একটি পরামর্শ হ'ল ট্যাগ অক্ষর খোলার ও বন্ধ করার সন্ধান করা, খুব তুচ্ছ ঘটনা বাদে এই পদ্ধতিটি কাজ করবে না।

উদাহরণস্বরূপ এই কেসগুলি (একই বিষয়ে পার্ল কুকবুক অধ্যায় থেকে) এই পদ্ধতিটি ভঙ্গ করবে:

<IMG SRC = "foo.gif" ALT = "A > B">

<!-- <A comment> -->

<script>if (a<b && a>c)</script>

<![INCLUDE CDATA [ >>>>>>>>>>>> ]]>

আপনি উদ্ধৃতি এবং এস্ট্রোফেসগুলি অ্যাকাউন্টে নেওয়ার জন্য কিছুটা যুক্তি যুক্ত করতে পারেন ... সিডিএটিএকে আরও কিছু বেশি সময় লাগবে, তবে এইচটিএমএল এর পুরো বিষয়টি হ'ল পার্সার দ্বারা অজানা ট্যাগগুলি উপেক্ষা করা যেতে পারে; আপনি যদি সমস্ত ট্যাগ অজানা হিসাবে বিবেচনা করেন, তবে আপনার কেবল কাঁচা পাঠ্য হওয়া উচিত।
বেন গটলিয়েব

আমি মন্তব্য করতে চাই যে একটি ভাল (তবে মূল) নিয়মিত প্রকাশ অবশ্যই আপনার উদাহরণগুলিতে ভঙ্গ হবে না। আপনি যদি সঠিকভাবে গঠিত এক্সএইচটিএমএলের গ্যারান্টি দিতে পারেন তবে অবশ্যই তা নয়। আমি জানি যে আপনি বলেছিলেন যে আপনি পারবেন না, তবে আমি আশ্চর্য হয়েছি কেন ;-)
জেক


দুর্ভাগ্যক্রমে, এনএসএস স্ক্যানার ব্যবহার করাই ধীর।
স্টিপেটে

আরও দুর্ভাগ্যক্রমে, লিঙ্কযুক্ত এনএসএস স্ক্যানার উদাহরণটি কেবল তুচ্ছ HTML এর জন্য কাজ করে for এটি আমার পোস্টে উল্লিখিত প্রতিটি পরীক্ষার ক্ষেত্রে ব্যর্থ হয়।
lfalin

উত্তর:


309

একটি তাত্ক্ষণিক এবং "নোংরা" (<এবং> এর মধ্যে সমস্ত কিছু সরিয়ে দেয়), আইওএস> = 3.2 এর সাথে কাজ করে:

-(NSString *) stringByStrippingHTML {
  NSRange r;
  NSString *s = [[self copy] autorelease];
  while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
    s = [s stringByReplacingCharactersInRange:r withString:@""];
  return s;
}

আমি এটিকে ওএস এনএসএসস্ট্রিং বিভাগ হিসাবে ঘোষণা করেছি।


4
@ জেমস সমাধানে পোস্ট করা পদ্ধতিটি ব্যবহার করতে। আপনাকে এনএসএসস্ট্রিংয়ের জন্য একটি বিভাগ তৈরি করতে হবে। গুগলে "উদ্দেশ্য-সি বিভাগ" সন্ধান করুন। তারপরে আপনি সেই পদ্ধতিটি এম ফাইলে এবং h ফাইলটিতে প্রোটোটাইপ যুক্ত করুন। যখন এটি সেট আপ হয়ে যায়, এটি ব্যবহার করার জন্য আপনাকে যা করতে হবে তার একটি স্ট্রিং অবজেক্ট (উদাহরণ: এনএসএসটিং * মাইস্ট্রিং = ...) থাকে এবং আপনি সেই পদ্ধতিটিকে আপনার স্ট্রিং অবজেক্টে কল করেন (এনএসএসটিং * স্ট্রিপডস্ট্রিং = [মাইস্ট্রিং স্ট্রিংবাই স্ট্রিপিং এইচটিএমএল]); )।
রবার্তো

3
+1 নিয়মিত প্রকাশের জন্য দুর্দান্ত ব্যবহার, তবে দুর্ভাগ্যক্রমে প্রচুর কেস কভার করে না।
ম্যাথাম

3
সত্যই দ্রুত এবং নোংরা .... এই ফাংশনটি আমার অ্যাপ্লিকেশনটিতে একটি বিশাল স্মৃতি
ফাঁসির

5
আমার অ্যাপ্লিকেশনটিতে এই সমাধানটি পারফরম্যান্সের সমস্যা তৈরি করেছে। পরিবর্তে আমি এনএসআরগুলারএক্সপ্রেসস অনুসন্ধানের সাথে এনএসএস স্ক্যানারের সাথে একটি সমাধানে স্যুইচ করেছি। এখন পারফরম্যান্স সমস্যাগুলি চলে গেছে
carmen_munich

2
এটি খুব খুব স্মৃতি এবং সময়সাপেক্ষ। এটি কেবলমাত্র অল্প পরিমাণে এইচটিএমএল সহ ব্যবহার করুন!
ullstrm

29

এই NSStringবিভাগটি NSXMLParserকোনও HTMLথেকে কোনও ট্যাগ সঠিকভাবে মুছে ফেলার জন্য ব্যবহার করে NSString। এটি এমন একক .mএবং .hফাইল যা আপনার প্রকল্পে সহজেই অন্তর্ভুক্ত করা যায়।

https://gist.github.com/leighmcculloch/1202238

তারপরে আপনি htmlনিম্নলিখিতগুলি দ্বারা স্ট্রিপ করুন :

শিরোনাম আমদানি করুন:

#import "NSString_stripHtml.h"

এবং তারপরে স্ট্রিপএইচটিএমএল কল করুন:

NSString* mystring = @"<b>Hello</b> World!!";
NSString* stripped = [mystring stripHtml];
// stripped will be = Hello World!!

এটি HTMLপ্রযুক্তিগতভাবে নয় এমন ত্রুটিযুক্তগুলির সাথেও কাজ করে XML


3
যদিও নিয়মিত প্রকাশ (যেমন m.kocikowski বলেছেন) দ্রুত এবং নোংরা, এটি আরও দৃ .়। উদাহরণ স্ট্রিং: @ "আমার পরীক্ষা <স্প্যান ফন্ট = \" ফন্ট> নাম \ "> এইচটিএমএল স্ট্রিং"। এই উত্তরটি ফিরে আসে: আমার পরীক্ষার এইচটিএমএল স্ট্রিং। । নিয়মিত প্রকাশ আয়: আমার পরীক্ষা নাম "> এইচটিএমএল স্ট্রিং যতক্ষণ এই নয় যে সাধারণ, এটা ঠিক আরো জোরালো হয়েছে।
DonnaLea

1
যদি আপনার "এস অ্যান্ড পি 500" এর মতো স্ট্রিং থাকে তবে এম্পারস্যান্ডের পরে এটি সমস্ত কিছু কেটে ফেলবে এবং কেবল "এস" স্ট্রিংটি ফিরিয়ে দেবে।
জোশুয়া গ্রস

11
UITextView *textview= [[UITextView alloc]initWithFrame:CGRectMake(10, 130, 250, 170)];
NSString *str = @"This is <font color='red'>simple</font>";
[textview setValue:str forKey:@"contentToHTMLString"];
textview.textAlignment = NSTextAlignmentLeft;
textview.editable = NO;
textview.font = [UIFont fontWithName:@"vardana" size:20.0];
[UIView addSubview:textview];

আমার জন্য ভাল কাজ


1
আমি এই সমাধানটির সাথে এনকোডিংয়ের সমস্যা পেয়েছি
KIDdAe

সম্ভবত সেরা সমাধান, তবে এটি কোনও ইউআইএলবেলের পক্ষে অকেজো :-(
জেব

9

আপনি নীচের মত ব্যবহার করতে পারেন

-(void)myMethod
 {

 NSString* htmlStr = @"<some>html</string>";
 NSString* strWithoutFormatting = [self stringByStrippingHTML:htmlStr];

 }

 -(NSString *)stringByStrippingHTML:(NSString*)str
 {
   NSRange r;
   while ((r = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location     != NSNotFound)
  {
     str = [str stringByReplacingCharactersInRange:r withString:@""];
 }
  return str;
 }

8

এটা ব্যবহার কর

NSString *myregex = @"<[^>]*>"; //regex to remove any html tag

NSString *htmlString = @"<html>bla bla</html>";
NSString *stringWithoutHTML = [hstmString stringByReplacingOccurrencesOfRegex:myregex withString:@""];

এটি আপনার কোডে অন্তর্ভুক্ত করতে ভুলবেন না: # আমদানি করা "রেইজকিটলাইট.এইচটি" এই এপিআইটি ডাউনলোড করার জন্য এখানে লিঙ্কটি রয়েছে: http://regexkit.sourceforge.net/#Downloads


7

এনএসএক্সএমএল পার্সারটি একবার দেখুন। এটি একটি স্যাক্স-স্টাইলের পার্সার। আপনি এটি এক্সএমএল ডকুমেন্টে ট্যাগ বা অন্যান্য অযাচিত উপাদান সনাক্ত করতে এবং এটিকে উপেক্ষা করে কেবল খাঁটি পাঠ্য ক্যাপচার করতে সক্ষম হবেন।


6

গৃহীত উত্তরের চেয়ে আরও কার্যকর সমাধান এখানে:

- (NSString*)hp_stringByRemovingTags
{
    static NSRegularExpression *regex = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        regex = [NSRegularExpression regularExpressionWithPattern:@"<[^>]+>" options:kNilOptions error:nil];
    });

    // Use reverse enumerator to delete characters without affecting indexes
    NSArray *matches =[regex matchesInString:self options:kNilOptions range:NSMakeRange(0, self.length)];
    NSEnumerator *enumerator = matches.reverseObjectEnumerator;

    NSTextCheckingResult *match = nil;
    NSMutableString *modifiedString = self.mutableCopy;
    while ((match = [enumerator nextObject]))
    {
        [modifiedString deleteCharactersInRange:match.range];
    }
    return modifiedString;
}

উপরের NSStringবিভাগটি সমস্ত মিলে যাওয়া ট্যাগগুলি সন্ধান করার জন্য একটি নিয়মিত অভিব্যক্তি ব্যবহার করে, মূল স্ট্রিংয়ের একটি অনুলিপি তৈরি করে এবং শেষ পর্যন্ত সমস্ত ট্যাগগুলিকে বিপরীত ক্রমে পুনরাবৃত্তি করে স্থানে সরিয়ে দেয়। এটি আরও দক্ষ কারণ:

  • নিয়মিত প্রকাশটি একবারেই শুরু করা হয়।
  • মূল স্ট্রিংয়ের একটি একক অনুলিপি ব্যবহৃত হয়।

এটি আমার পক্ষে যথেষ্ট কার্য সম্পাদন করেছে তবে একটি সমাধান ব্যবহার করে NSScanner আরও কার্যকর হতে পারে।

গৃহীত উত্তরের মতো, এই সমাধানটি @ ফ্লালিন দ্বারা অনুরোধ করা সমস্ত সীমান্ত কেসগুলির সমাধান করে না। এগুলির জন্য আরও বেশি ব্যয়বহুল পার্সিংয়ের প্রয়োজন হবে যা সাধারণত ব্যবহারের ক্ষেত্রে সম্ভবত প্রয়োজন হয় না।


5

একটি লুপ ছাড়া (অন্তত আমাদের দিকে):

- (NSString *)removeHTML {

    static NSRegularExpression *regexp;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        regexp = [NSRegularExpression regularExpressionWithPattern:@"<[^>]+>" options:kNilOptions error:nil];
    });

    return [regexp stringByReplacingMatchesInString:self
                                            options:kNilOptions
                                              range:NSMakeRange(0, self.length)
                                       withTemplate:@""];
}

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। বর্তমানের একটি হাস্যকরভাবে অপব্যয়কারী।
অ্যাডলাই হোলার

5
NSAttributedString *str=[[NSAttributedString alloc] initWithData:[trimmedString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];

যখন আমাদের এইচটিএমএল ট্যাগ সহ মেটা ডেটা থাকে এবং সেই ট্যাগগুলি প্রয়োগ করতে চায়, সেই সময় আমাদের ইচ্ছা আউটপুটটি অর্জন করতে উপরের কোডটি প্রয়োগ করা উচিত।
পাভান পর্ব

4
#import "RegexKitLite.h"

string text = [html stringByReplacingOccurrencesOfRegex:@"<[^>]+>" withString:@""]

2
এইচটিএমএল কোনও নিয়মিত ভাষা নয় তাই আপনার এটি নিয়মিত প্রকাশের সাথে পার্স / স্ট্রিপ করার চেষ্টা করা উচিত নয়। stackoverflow.com/questions/1732348/...
csaunders

3

আমি উত্তরটি m.kocikowski দ্বারা প্রসারিত করেছি এবং NSMutableString ব্যবহার করে এটিকে আরও কার্যকর করার চেষ্টা করেছি। আমি এটি একটি স্ট্যাটিক ইউটিলেস ক্লাসে ব্যবহারের জন্যও কাঠামোগত করেছি (আমি জানি কোনও বিভাগ সম্ভবত যদিও সেরা নকশা)), এবং অটোরেলেজ সরিয়ে ফেলেছে যাতে এটি একটি এআরসি প্রকল্পে সংকলিত হয়।

যে কেউ এটি দরকারী হিসাবে এখানে অন্তর্ভুক্ত।

+ (NSString *)stringByStrippingHTML:(NSString *)inputString;

.m

+ (NSString *)stringByStrippingHTML:(NSString *)inputString 
{
  NSMutableString *outString;

  if (inputString)
  {
    outString = [[NSMutableString alloc] initWithString:inputString];

    if ([inputString length] > 0)
    {
      NSRange r;

      while ((r = [outString rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
      {
        [outString deleteCharactersInRange:r];
      }      
    }
  }

  return outString; 
}

এই পদ্ধতিটি দরকারী তবে, যদি আমাকে লিঙ্কের মতো কিছু ট্যাগ নন-স্ট্রিপ করা দরকার <a> আমি এটি
সম্পাদন

@ ভাল তবে কেবলমাত্র রেজেজকে এটি পরিবর্তন করুন <(?>/?)(?!a).+?><a> এবং ক্লোজিং </a> ট্যাগগুলি বাদ দিয়ে সমস্ত ট্যাগ সরিয়ে ফেলবে।
আশুর

3

আপনি যদি ওয়েব পৃষ্ঠা (এইচটিএমএল ডকুমেন্ট) থেকে এইচটিএমএল ট্যাগ ব্যতীত সামগ্রী পেতে চান, তবে UIWebViewDidfinishLoading প্রতিনিধি পদ্ধতির অভ্যন্তরে এই কোডটি ব্যবহার করুন ।

  NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];

<br> কিছুই প্রতিস্থাপন করা হচ্ছে ... যা অনাকাঙ্ক্ষিত।
নিশান্ত

2

আমি কল্পনা করব যে সবচেয়ে নিরাপদ উপায়টি <> s এর জন্য পার্স করা উচিত, না? পুরো স্ট্রিংয়ের মধ্য দিয়ে লুপ করুন এবং <> s এ সংযুক্ত না থাকা কোনও কিছুকে একটি নতুন স্ট্রিংয়ে অনুলিপি করুন।


2

এটি এম.কোসিকোভস্কি উত্তরের আধুনিকীকরণ যা হোয়াইটস্পেসগুলি সরিয়ে দেয়:

@implementation NSString (StripXMLTags)

- (NSString *)stripXMLTags
{
    NSRange r;
    NSString *s = [self copy];
    while ((r = [s rangeOfString:@"<[^>]+>\\s*" options:NSRegularExpressionSearch]).location != NSNotFound)
        s = [s stringByReplacingCharactersInRange:r withString:@""];
    return s;
}

@end

2

নিম্নলিখিতটি গ্রহণযোগ্য উত্তর, তবে বিভাগের পরিবর্তে এটি স্ট্রিং সহ সহজ সহায়ক পদ্ধতি। (ধন্যবাদ মি। কোকিকোভস্কি)

-(NSString *) stringByStrippingHTML:(NSString*)originalString {
    NSRange r;
    NSString *s = [originalString copy];
    while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
        s = [s stringByReplacingCharactersInRange:r withString:@""];
    return s;
}

2

এখানে দ্রুততম সংস্করণ:

func stripHTMLFromString(string: String) -> String {
  var copy = string
  while let range = copy.rangeOfString("<[^>]+>", options: .RegularExpressionSearch) {
    copy = copy.stringByReplacingCharactersInRange(range, withString: "")
  }
  copy = copy.stringByReplacingOccurrencesOfString("&nbsp;", withString: " ")
  copy = copy.stringByReplacingOccurrencesOfString("&amp;", withString: "&")
  return copy
}

হ্যাঁ, stringByReplacingOccurrencesOfStringআপনি চক্রের বাইরে ব্যবহার করছেন শতাংশ এনকোডিং এবং সঠিক উপায়ে স্থির করা উচিত।
ভাইচাস্লাভ গের্চিকভ

0

আপনি যদি থ্রি 2020 কাঠামো ব্যবহার করতে ইচ্ছুক হন তবে এটিতে এনএসএসস্ট্রিংয়ের একটি বিভাগ রয়েছে যা স্ট্রিংবাইরোমুরিং এইচটিএমএল ট্যাগগুলি পদ্ধতি যুক্ত করে। থ্রি -20 কোর সাবপ্রজেক্টে NSStringAdditions.h দেখুন।


26
Godশ্বরের দোহাই দিয়ে, কোনও কিছুর জন্য থ্রি -20 ব্যবহার করবেন না। সর্বাধিক স্ফীত এবং খারাপ মন্তব্য ফ্রেমওয়ার্ক।
কমপোজার

0

এমবি কোকিকোভস্কি এবং ড্যান জে এর উত্তরগুলি থেকে নবাবিদের আরও ব্যাখ্যা সহ এটি আরও প্রসারিত করা

1 # প্রথমে কোডটি যে কোনও শ্রেণিতে ব্যবহারযোগ্য করে তুলতে আপনাকে উদ্দেশ্য-সি-বিভাগগুলি তৈরি করতে হবে।

@interface NSString (NAME_OF_CATEGORY)

- (NSString *)stringByStrippingHTML;

@end

.m

@implementation NSString (NAME_OF_CATEGORY)

- (NSString *)stringByStrippingHTML
{
NSMutableString *outString;
NSString *inputString = self;

if (inputString)
{
    outString = [[NSMutableString alloc] initWithString:inputString];

    if ([inputString length] > 0)
    {
        NSRange r;

        while ((r = [outString rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
        {
            [outString deleteCharactersInRange:r];
        }
    }
}

return outString;
}

@end

2 # তারপরে আপনি স্রেফ তৈরি করা বিভাগের শ্রেণীর .h ফাইলটি আমদানি করুন

#import "NSString+NAME_OF_CATEGORY.h"

3 # পদ্ধতি কলিং।

NSString* sub = [result stringByStrippingHTML];
NSLog(@"%@", sub);

ফলাফলটি হ'ল এনএসএসআর্টিং আমি ট্যাগগুলি থেকে ফেলা চাই।


0

আমি m.kocikowski এর গৃহীত উত্তর অনুসরণ করেছি এবং পরিবর্তিত স্ট্রিংবাইরেপ্লেসিং চ্যারাকটারসআইঞ্জ্রেঞ্জ দ্বারা নির্মিত সমস্ত অস্থায়ী স্ট্রিংগুলি পরিষ্কার করার জন্য একটি অটোরেলিজপুল ব্যবহার করা সামান্য is

এই পদ্ধতির মন্তব্যে এটি উল্লেখ করেছে, / * নির্দিষ্ট স্ট্রিংয়ের সাথে পরিসরে অক্ষরের প্রতিস্থাপন করে নতুন স্ট্রিং ফিরে আসবে। * /

সুতরাং, আপনার এক্সএমএলের দৈর্ঘ্যের উপর নির্ভর করে আপনি নতুন অটোরিলেজ স্ট্রিংয়ের বিশাল পরিমাণের স্তুপ তৈরি করতে পারেন যা পরবর্তী @autoreleasepool শেষ না হওয়া পর্যন্ত পরিষ্কার করা হয় না। এটি কখন ঘটতে পারে তা আপনি যদি নিশ্চিত না হন বা যদি কোনও ব্যবহারকারী পদক্ষেপ আগে বার বার এই পদ্ধতিতে অনেক কল কল করতে পারে তবে আপনি কেবল এটি একটি @Autoreleasepool এ গুটিয়ে রাখতে পারেন। এগুলি এমনকি নেস্ট করা এবং যেখানে সম্ভব লুপের মধ্যে ব্যবহার করা যেতে পারে।

@ অটোরিলেপপুলের বিষয়ে অ্যাপলের রেফারেন্স এটিকে জানিয়েছে ... "আপনি যদি এমন একটি লুপ লিখে থাকেন যা অনেকগুলি অস্থায়ী বস্তু তৈরি করে next পরবর্তী পুনরাবৃত্তির আগে আপনি লুপটির অভ্যন্তরে একটি অটোরলেজ পুল ব্লক ব্যবহার করতে পারেন the লুপে একটি অটোরলেজ পুল ব্লক ব্যবহার করে অ্যাপ্লিকেশনটির সর্বাধিক মেমরির পদচিহ্ন হ্রাস করতে সহায়তা করে। আমি এটি লুপটিতে ব্যবহার করি নি, তবে কমপক্ষে এই পদ্ধতিটি এখন নিজের পরে পরিষ্কার হয়ে যায়।

- (NSString *) stringByStrippingHTML {
    NSString *retVal;
    @autoreleasepool {
        NSRange r;
        NSString *s = [[self copy] autorelease];
        while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound) {
            s = [s stringByReplacingCharactersInRange:r withString:@""];
        }
        retVal = [s copy];
    } 
    // pool is drained, release s and all temp 
    // strings created by stringByReplacingCharactersInRange
    return retVal;
}

0

আর একটি উপায়:

ইন্টারফেস:

-(NSString *) stringByStrippingHTML:(NSString*)inputString;

বাস্তবায়ন

(NSString *) stringByStrippingHTML:(NSString*)inputString
{ 
NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:[inputString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} documentAttributes:nil error:nil];
NSString *str= [attrString string]; 

//you can add here replacements as your needs:
    [str stringByReplacingOccurrencesOfString:@"[" withString:@""];
    [str stringByReplacingOccurrencesOfString:@"]" withString:@""];
    [str stringByReplacingOccurrencesOfString:@"\n" withString:@""];

    return str;
}

সাধনা

cell.exampleClass.text = [self stringByStrippingHTML:[exampleJSONParsingArray valueForKey: @"key"]];

বা সহজ

NSString *myClearStr = [self stringByStrippingHTML:rudeStr];


এই পদ্ধতিটি এইচটিএমএল ট্যাগগুলি মুছে ফেলছে ut তবে আমি এইচটিএমএল স্ট্রিংটি পার্স করতে চাই what কী করতে হবে
প্যাটেল

আমার সময় বাঁচিয়েছে ice চমৎকার সমাধান
প্যাটেল

0

@ M.kocikowski এর জন্য একটি আপডেট হওয়া উত্তর যা সাম্প্রতিক আইওএস সংস্করণে কাজ করে।

-(NSString *) stringByStrippingHTMLFromString:(NSString *)str {
NSRange range;
while ((range = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
    str = [str stringByReplacingCharactersInRange:range withString:@""];
return str;

}


-3

এখানে একটি ব্লগ পোস্ট যা এইচটিএমএল কেটে ফেলার জন্য উপলব্ধ কয়েকটি পাঠাগার নিয়ে আলোচনা করে http://sugarmaplesoftware.com/25/strip-html-tags/ কে সরিয়ে দেওয়ার করেছে solutions যেখানে অন্যের সমাধান দেওয়া হয় সেই মন্তব্যগুলি নোট করুন।


এটি আমার মন্তব্যগুলিতে সংযুক্ত মন্তব্যগুলির সঠিক সেট যা কাজ করবে না তার উদাহরণ হিসাবে।
lfalin
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.