你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

three20代码阅读之TTMarkupStripper解析html

2022/5/17 3:20:09
///
///
///
@implementation TTMarkupStripper


///
- (void)dealloc {
  TT_RELEASE_SAFELY(_strings);

  [super dealloc];
}


///
///
#pragma mark -
#pragma mark NSXMLParserDelegate


///
- (void)parser:(NSXMLParser*)parser foundCharacters:(NSString*)string {
  [_strings addObject:string];
}


///
- (NSData*)             parser: (NSXMLParser*)parser
     resolveExternalEntityName: (NSString*)entityName
                      systemID: (NSString*)systemID {
  return [[[TTEntityTables sharedInstance] iso88591] objectForKey:entityName];
}


///
///
#pragma mark -
#pragma mark Public


///
- (NSString*)parse:(NSString*)text {
  _strings = [[NSMutableArray alloc] init];

  NSString*     document  = [NSString stringWithFormat:@"<x>%@</x>", text];
  NSData*       data      = [document dataUsingEncoding:text.fastestEncoding];
  NSXMLParser*  parser    = [[NSXMLParser alloc] initWithData:data];
  parser.delegate = self;
  [parser parse];
  TT_RELEASE_SAFELY(parser);

  NSString* result = [_strings componentsJoinedByString:@""];
  TT_RELEASE_SAFELY(_strings);

  return result;
}