HTML利用第三方框架HTML Parser解析

先导入HTML parser三方框架

添加libxml2包和路径

#import "ViewController.h"

#import "HTMLParser.h"
#import "HTMLNode.h"

//#import "Student.h"
//#import "Book.h"

@interface ViewController ()
            
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController
            
- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"];
    
//    NSString *htmlStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
    //基础框架里面的方法
    //NSNumber/NSString/NSArray/NSDictionary
    //NSMutableString/NSMutableArray/NSMutableDictionary
    NSString *htmlStr = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@", htmlStr);
    
    NSData *data = [NSData dataWithContentsOfURL:url];
    NSString *str10 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@", str10);
    
    NSData *imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com/img/bd_logo.png"]];
//    NSLog(@"%@", imgData);
    [imgData writeToFile:@"/Users/apple/Desktop/bd_logo.png" atomically:YES];
    
    self.imageView.image = [UIImage imageWithData:imgData];
    
//    NSString *imgStr = [[NSString alloc] initWithData:imgData encoding:NSUTF8StringEncoding];
//    NSLog(@"<----->%@", imgStr);
    
    HTMLParser *parser = [[HTMLParser alloc] initWithString:htmlStr error:nil];
    HTMLNode *bodyNode = [parser body];

//    parser = nil;
    
    //根据class找到一个子节点
    HTMLNode *abcNode = [bodyNode findChildOfClass:@"abc"];
    if (abcNode) {
        //获取节点里的第一个内容
        NSLog(@"%@", [abcNode contents]);
        //获取节点里的所有内容
        NSLog(@"%@", [abcNode allContents]);
    }
    
    NSLog(@"--------");
    //根据类属性查找子节点
    NSArray *array = [bodyNode findChildrenOfClass:@"abc"];
    for (HTMLNode *node in array) {
        NSLog(@"%@", [node contents]);
    }
    
    //根据属性查找子节点
    HTMLNode *aNode = [bodyNode findChildWithAttribute:@"target" matchingName:@"_blank" allowPartial:YES];
    NSLog(@"tag name: %@: %@", [aNode tagName], [aNode contents]);
    
    //根据节点名查找子节点
    HTMLNode *imgNode = [bodyNode findChildTag:@"img"];
    NSLog(@"%@", [imgNode rawContents]);//获取该节点的原始内容
    
    Student *stu = [[Student alloc] init];
    stu.book = [[Book alloc] init];
    
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
}


前端html5框架ZUI发布1.2正式版本了! 此版本增加了很多新特性,同时修复问题,文档也得到大幅完善。 欢迎大家使用并反馈问题, 更新明细: 1、新增日历视图组件,方便实现日程的展示 2、新增数据表格视图组件,更轻松实现复杂数据的展示,移除table.data.js 3、重新实现的模态框触发器,模态框触发器同时支持加载远程内容和实时内容,实时根据自身内容调整位置和尺寸,重新设计了调用接口,使用更加方便,消除了模态框触发器于一般模态框发生冲突的隐患 4、package.json增加组件及其依赖关系的配置,重新实现了Grunt任务,编译单独组件更加方便,并支持任意组件集合的打包编译,grunt任务将自动管理组件之间的依赖关系 5、大幅更新文档部分章节内容,并对文档整理样式进行了调整,在文档中可以查看每个组件属性,并给出第三方组件版本及用户支持信息,文档支持IE8,优化文档在小屏幕上的表现 6、重新实现了漂浮消息组件,调用更方便,更好的动画效果 7、新增新的第三方组件chartjs,能够绘制简单图表 8、增加browser.js,为IE系列的浏览器增加版本提示辅助类 9、新增 'store.js',实现本地存储通用接口,并增加单独页面范围的独立存储机制,beta版本中的页面标识有时不正确的bug已得到修复 10、新增 'jquery.extensions.js',增加一些实用的jQuery扩展方法,便于进行其他组件的开发,移除原'unities.js' 11、增加array.js,提供一些操作数组的实用方法 12、调整了dist目录结构,第三方组件和适合单独调用的组件将直接包含在lib目录中 13、Chosen选项及分组支持title属性,Chosen弹出列表支持自定义宽度,调整多选Chosen中选项的样式 14、修复Chosen中特定情况下placeholder无法显示的问题 15、日期时间选择器将能够自动从html标签中获取页面语言设置并应用语言设置 16、调整左侧固定导航样式 17、在date.js中增加一些实用方法来帮助进行日期计算 18、模态框支持额外的两种默认尺寸,修复某些时候模态框弹出时滚动条闪动的问题 19、修复代码段第一行出现错位的样式问题 20、一些组件的额外组成部分其对应的文件被重新命名 21、修复特定情况下kindeditor图标无法显示的问题 22、优化区块面板视图动作按钮事件监听机制 23、修复color.js中增加命名颜色支持 26、弹出框增加新的选项能够制定JS生成DOM的id属性,便于自定义样式 27、大幅优化代码,修复一些在Javascript代码中的错误,完善关键代码注释,增强部分代码文件与requierejs的兼容性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值