Ai
3 Star 0 Fork 0

Gitee 极速下载/Objective-C-HTML-Parser

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/zootreeves/Objective-C-HMTL-Parser
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
HTMLParser.m 2.38 KB
一键复制 编辑 原始数据 按行查看 历史
Lars Wilhelmsen 提交于 2012-08-11 03:56 +08:00 . Fixed for ARC
//
// HTMLParser.m
// StackOverflow
//
// Created by Ben Reeves on 09/03/2010.
// Copyright 2010 Ben Reeves. All rights reserved.
//
#import "HTMLParser.h"
@implementation HTMLParser
-(HTMLNode*)doc
{
if (_doc == NULL)
return NULL;
return [[HTMLNode alloc] initWithXMLNode:(xmlNode*)_doc];
}
-(HTMLNode*)html
{
if (_doc == NULL)
return NULL;
return [[self doc] findChildTag:@"html"];
}
-(HTMLNode*)head
{
if (_doc == NULL)
return NULL;
return [[self doc] findChildTag:@"head"];
}
-(HTMLNode*)body
{
if (_doc == NULL)
return NULL;
return [[self doc] findChildTag:@"body"];
}
-(id)initWithString:(NSString*)string error:(NSError**)error
{
if (self = [super init])
{
_doc = NULL;
if ([string length] > 0)
{
CFStringEncoding cfenc = CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding);
CFStringRef cfencstr = CFStringConvertEncodingToIANACharSetName(cfenc);
const char *enc = CFStringGetCStringPtr(cfencstr, 0);
// _doc = htmlParseDoc((xmlChar*)[string UTF8String], enc);
int optionsHtml = HTML_PARSE_RECOVER;
optionsHtml = optionsHtml | HTML_PARSE_NOERROR; //Uncomment this to see HTML errors
optionsHtml = optionsHtml | HTML_PARSE_NOWARNING;
_doc = htmlReadDoc ((xmlChar*)[string UTF8String], NULL, enc, optionsHtml);
}
else
{
if (error) {
*error = [NSError errorWithDomain:@"HTMLParserdomain" code:1 userInfo:nil];
}
}
}
return self;
}
-(id)initWithData:(NSData*)data error:(NSError**)error
{
if (self = [super init])
{
_doc = NULL;
if (data)
{
CFStringEncoding cfenc = CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding);
CFStringRef cfencstr = CFStringConvertEncodingToIANACharSetName(cfenc);
const char *enc = CFStringGetCStringPtr(cfencstr, 0);
//_doc = htmlParseDoc((xmlChar*)[data bytes], enc);
_doc = htmlReadDoc((xmlChar*)[data bytes],
"",
enc,
XML_PARSE_NOERROR | XML_PARSE_NOWARNING);
}
else
{
if (error)
{
*error = [NSError errorWithDomain:@"HTMLParserdomain" code:1 userInfo:nil];
}
}
}
return self;
}
-(id)initWithContentsOfURL:(NSURL*)url error:(NSError**)error
{
NSData * _data = [[NSData alloc] initWithContentsOfURL:url options:0 error:error];
if (_data == nil || *error)
{
return nil;
}
self = [self initWithData:_data error:error];
return self;
}
-(void)dealloc
{
if (_doc)
{
xmlFreeDoc(_doc);
}
}
@end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Objective-C
1
https://gitee.com/mirrors/Objective-C-HTML-Parser.git
git@gitee.com:mirrors/Objective-C-HTML-Parser.git
mirrors
Objective-C-HTML-Parser
Objective-C-HTML-Parser
master

搜索帮助