iOS开发之html解析(转)

ios开发解析HTML 首先要加载三个必备的文件: #import "TFHpple.h"                      #import "TFHppleElement.h"  #import "XPathQuery.h"  注意: 添加以上三个类必须添加一个库,这个库是:libxml2.2.dylib。并且还需要设置一些路径参数,否则会一直报错;这个路径的设置,在 targets中,在bu 阅读详情

到ios6的时候之前在ios5中用的库文件libxml2.2.7.7不能用了,要改成libxml2或者libxml2.2。我不知道要怎么改,可能下边这个设置就是改法了。

使用XPath解析html

可以从此处 https://github.com/topfunky/hpple下载工程,将TFHpple.h,TFHpple.m,TFHppleElement.h,TFHppleElement.m,XPathQuery.h,XPathQuery.m加到自己的项目中,在Frameworks中导入libxml2.x
iOS开发之html解析(转) - ♂苹果 - 眼睛想旅行
 

在项目中找到Other Linker Flags,加入-libxml2
iOS开发之html解析(转) - ♂苹果 - 眼睛想旅行
 

在项目中找到Header Search Paths,加入/usr/include/libxml2
代码如下:

NSString *urlString = nil;

 

urlString = @"http://www.xiyou.edu.cn/new/lm.jsp?urltype=tree.TreeTempUrl&wbtreeid=724";

 

NSData *htmlData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]];

 

NSData *toHtmlData = [self toUTF8:htmlData];

 

TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:toHtmlData];

 

 

NSArray *aArray = [xpathParser searchWithXPathQuery:@"//a"];

 

if ([span count] > 0) {

            

            for (int i = 87; i < 102; i++) {

                            //从<a>的第82个开始取值,共获取15个值

                TFHppleElement *aElement = [aArray objectAtIndex:i];    

                NSArray *aArr = [aElement children];

                TFHppleElement *aEle = [aArr objectAtIndex:0];

                NSArray *aChild = [aEle children];

                TFHppleElement *aChildEle = [aChild objectAtIndex:0];

                NSArray *aChildren = [aChildEle children];

                NSString *aStr = [[aChildren objectAtIndex:0] content];

                NSLog(@"aStr:%@",aStr);

                NSDictionary *aAttributeDict = [aElement attributes];

                NSLog(@"aAttributeDict:%@",aAttributeDict);

                

                            //获取a中的属性值

                NSString *hrefStr = [NSString stringWithFormat:@"http://www.xiyou.edu.cn%@",[aAttributeDict objectForKey:@"href"]];

                NSLog(@"hrefStr:%@",hrefStr);

                

                [currentNewsArr addObject:aStr];

                [currentHrefArr addObject:hrefStr];

                

            }

[htmlData release];

[xpathParser release];

}


//如果解析的网页不是utf8编码,如gbk编码,可以先将其转换为utf8编码再对其进行解析

 

-(NSData *) toUTF8:(NSData *)sourceData {  

    CFStringRef gbkStr = CFStringCreateWithBytes(NULL, [sourceData bytes], [sourceData length], kCFStringEncodingGB_18030_2000, false);  

    

    if (gbkStr == NULL) {  

        return nil;  

    } else {  

        NSString *gbkString = (NSString *)gbkStr; 

        //根据网页源代码中编码方式进行修改,此处为从gbk转换为utf8

             NSString *utf8_String = [gbkString stringByReplacingOccurrencesOfString:@"META http-equiv="Content-Type" content="text/html; charset=GBK""  

                                                                      withString:@"META http-equiv="Content-Type" content="text/html; charset=UTF-8""];  

        

        return [utf8_String dataUsingEncoding:NSUTF8StringEncoding];                             

    }                                     

}


转自: http://blog.sina.com.cn/s/blog_833996210100yyt4.html
iOS开发实战:使用FTCoreText实现UILabel的HTML解析效果 FTCoreText是一个基于iOS原生CoreText框架深度封装的高性能富文本渲染库,旨在解决UILabel无法直接解析HTML字符串的痛点问题。该库通过扩展UILabel的功能,实现对HTML标签的解析与富文本展示,支持字体、颜色、链接、图片等复杂排版需求。相较于使用WKWebView或UIWebView加载HTML内容,FTCoreText在轻量级文本渲染场景中具备显著优势——更低的内存占用、更高的绘制效率,以及更灵活的布局控制能力。 阅读详情

相关推荐

浅谈iOS解析HTMl标签以及开发中的一些坑

开篇 看了看更新日期好久没写简书了,经常还有小伙伴在文章下面评论,看到自己写的东西还是有点用的,鼓励自己接着坚持下去吧,哈哈。今天主要就写写iOS中怎么解析HTML标签,我们常用的后台返回数据一般是json格式的但是有些时候如果我们收到的是带HTMl标签的我们该怎么处理他呢,今天就来说一说吧。 正文 前两天获取后台数据的时候,得到这么一条返回信息 恭喜您获得8.1元现金奖励 本来简简单单的把返回数据展示到label上的事情一下子变得有趣起来,后台说是为了以后产品改返回内容的时候容易处理,可以这理由很强势。 但是作为开发的我们怎么处理

ios 解析html内容

在 iOS 中通常加载 HTML 字符串有两种方式通过 UILabel 加载富文本的方法加载 HTML 字符串 通过 WebView 加载 HTML 字符串第一个解析html 去除标签取数据//str为我们取出的html数据 NSString * str = [reponse[@"data"] objectForKey:@"gn_content"]; //将str转换成标准的html数据 str

-此夜微凉 3018

地平线天工开物AI开发平台实战:从量化训练到模型部署的完整指南

本文提供了地平线天工开物(OpenExplorer)AI开发平台的实战指南,详细解析了从量化训练到模型部署的完整流程。文章重点对比了量化感知训练(QAT)与训练后量化(PTQ)两条核心路径的优劣与适用场景,并分享了图像分类模型PTQ部署的实战经验与常见问题调试技巧,旨在帮助开发者高效地将AI模型部署到地平线AI芯片上。

weixin_29046035的博客 456

ios 标签解析html_iOS解析html

在一些情况下我们在工程中需要解析html中的数据,TFHpple是一个非常方便的三方类.它可以根据标签解析html数据,应用比较简便. 首先要先做一下准备工作。下载[TFHpple:](topfunky/hpple),将文件夹拖入到工程中.TFHpple的工作原理是事先根据URL将html数据转化为NSData类型.然后再根据标签解析数据.```- (void)viewDidLoad{ ...

weixin_29335033的博客 662

LiteratureReading:[2022] Reformer: The Efficient Transformer

所属机构:加州大学伯克利分校(U.C. Berkeley)和谷歌研究(Google Research)。电子邮件:kitaev@cs.berkeley.edu所属机构:谷歌研究(Google Research)。电子邮件:lukaszkaiser@google.com所属机构:谷歌研究(Google Research)。电子邮件:levskaya@google.com大型Transformer模型在许多任务上通常能够达到最先进的结果,但训练这些模型可能非常昂贵,尤其是在处理长序列时。

有朋自远方来,不亦乐乎。 1225

uniapp+openlayers集成天地图实战:renderjs通信陷阱与性能优化避坑指南

本文深入探讨了uniapp与openlayers集成天地图时的renderjs通信陷阱与性能优化策略。通过实战案例解析了renderjs的特殊通信机制、地图实例生命周期管理、图层懒加载等关键技巧,帮助开发者避免常见坑点,提升应用流畅度。特别针对多语言切换、热重载偏移等疑难问题提供了解决方案,是uniapp+openlayers开发者的实用避坑指南。

weixin_30872157的博客 362

iOS 解析 html

在iOS开发中,app数据的来源,有可能是通过解析html。我一般是通过使用hpple三方库,来解析自己想要的数据。以下以解析新浪股票的某个模块为例,简单展示一下hpple的使用。 1. hpple的安装  查询了一下hpple的版本信息,然后通过pod 将其集成到工程中。 2. 要解析的内容 解析的网址链接为 https://finance.sina.com.cn/stock/ ,下...

littlelittlepeng的博客 3354

在QTableWidget中添加支持多选的QComboBox并显示

定义自定义表格项,主要用于显示复选框自定义的多选ComboBox类自定义委托类,用于表格中的多选ComboBox代码展示如下。

YUyang0304的博客 2784

IOS之解析Html的两种方式

1.最近没什么做的就解析了html的文本来了,在解析的时候会遇到一些问题,但是现在也解决了, 我使用了两种方式去解析Html 页面,现在就来说一下是什么方式去解析的 第一种的方法:使用正则表达式(http://rss.sina.com.cn/sports/basketball/nba.xml 需要解析的数据) 使用多线程的方式去解析html数据: -(void)getNews{ //...

weixin_30819085的博客 333

微信小程序 - 最新实现项目适老化设计全流程及源码,老年模式大字版与常规版页面样式切换,老年人大字模式字体与布局更换关怀版解决方案(新老项目均适用的方案,全局页面统一修改文本字号/DOM排版元素等)

微信小程序,vue2,vue3,老年大字版设计,小程序开发如何实现适老化方案,放大字体字号及改变页面的布局,小程序关怀模式实现思路及代码,统一将布局都改了,全局修改字体大小适配老年人看不清问题,小程序怎么接入老年模式并根据模式改变页面的UI设计,实现全局修改字体大小适老化/关怀版改造,最新详细示例代码全流程,字体放大/缩小,老项目怎么适配老年人模式方案,小程序适老化设计指南,当切换成老年模式时页面所有排版都会发生变化,小程序vue开发,新手详细教程,老年模式字体设置思路和UI布局的设计,开发者可以通过wx.

🏆 前端领域优质创作者 7308

ROS局部路径规划器插件teb_local_planner流程梳理(上)

在我之前的文章《ROS导航包Navigation中的 Movebase节点路径规划相关流程梳理》中已经介绍过Move_base节点调用局部路径规划器插件的接口函数是computeVelocityCommands,接下来,我们就从这个函数入手梳理一下teb_local_planner功能包的工作流程。

慕羽★的博客 5165

EFMarkdown 项目推荐

EFMarkdown 项目推荐 1、项目的基础介绍和主要的编程语言 EFMarkdown 是一个基于 Swift 的轻量级 Markdown 库,旨在为 iOS 开发者提供一个简单易用的 Markdown 解析和渲染工具。该项目的主要编程语言是 Swift,适用于 iOS 8.0 及以上版本。 2、项目的核心功能 EFMarkdown 的核心功能包括: Markdown 转 HTML:能够将 M...

gitblog_00246的博客 357

图解ADAS电源系统架构:看懂这张图,搞懂前装摄像头的供电秘密!

别以为ADAS系统就是“摄像头 + SoC”,其实最难搞的是供电系统,尤其是要满足车规级ASIL-D安全等级时。供电时序、电压稳定性、电源监控、冗余通信链路,一个都不能少。😤一旦电源选型不对,轻则系统卡顿,重则全车失控,不是闹着玩的。

weixin_43199439的博客 675

【亲测免费】 MMMarkdown: 快速、简洁的 Markdown 解析库

如果你是一个开发者,并且经常需要在代码中处理 Markdown 格式的内容,那么你一定会喜欢这款开源库:MMMarkdown。 ## 项目简介 MMMarkdown 是一款由 Mattt Thompson 开发的轻量级 Markdown 解析器,它基于 Objective-C 编写,并且完全兼容 iOS 和 macOS 平台。你可以通过它将 Markdown 文本转换为 HTML 格式的文本,...

gitblog_00067的博客 993

[VCS]VCS dump fsdb的精细化控制

本文介绍了VCS FSDB波形dump的精细化控制方法。主要内容包括:1)基本dump方式;2)通过$fsdbDumpoff排除特定层次;3)使用$fsdbDumpvars选择性dump指定模块;4)运行时动态控制dump开关;5)通过文件管理排除列表($fsdbDumpoffFile或自定义读取);6)层次控制策略(剪除整棵树或仅当前层)。这些方法可有效控制波形文件大小,提高仿真效率。

元直的博客 1033

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MMMarkdown:高效易用的Markdown转HTML框架

**MMMarkdown** 是一个用于将 [Markdown][] 转换为 HTML 的 Objective-C 框架。它兼容 OS X 10.7+、iOS 8.0+、tvOS 以及 watchOS。与其他 Markdown 库不同,MMMarkdown 实现了一个真正的解析器,而不是依赖于原始的 Perl 实现或使用正则表达式来转换输入。MMMarkdown 的设计目标是高效且最小化内存使用。...

gitblog_00070的博客 622

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

推荐开源项目:MMMarkdown - 高效的Objective-C Markdown转HTML框架

在快速发展的互联网时代,Markdown因其简洁明了的语法和良好的可读性,已经成为程序员们撰写文档和笔记的首选语言。今天,我们要向您推荐一个强大的Objective-C框架——**MMMarkdown**,它能将Markdown文本优雅地转换成HTML,适用于各种平台。 ## 项目介绍 MMMarkdown是一款兼容OS X 10.7+、iOS 8.0+、tvOS以及watchOS的Objec...

gitblog_00198的博客 1481

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何在iOS应用中快速集成MMMarkdown:5分钟入门教程

MMMarkdown是一款高效的Objective-C框架,专为iOS应用设计,能够快速将Markdown文本转换为HTML格式。它采用原生解析器实现,不依赖正则表达式,兼容iOS 8.0+及以上系统,是移动开发中处理富文本展示的理想选择。 ## 📦 准备工作:获取MMMarkdown框架 在开始集成前,需要将MMMarkdown框架添加到你的项目中。推荐使用以下两种方式: ### 方式1

gitblog_02895的博客 372

ios html字符串 h5,ios 端如何解码 Unicode

ios 端如何 进行同样的unicode 解码 转码, 不太懂Java,希望大神贴上ios unicode代码转码解码public static String string2Unicode(String string) {StringBuffer unicode = new StringBuffer();for (int i = 0; i < string.length(); i++) {c...

weixin_29205373的博客 337

IOS HTML 解析

IOS HTML 解析 分类: ios2013-05-21 10:23 769人阅读 评论(0) 收藏 举报 [plain] view plaincopy #define PARSER_URL  @"http://www.baidu.com/s?wd=iphone&rsv_bp=0&ch=&tn=baidu&bar=&rsv_spt=3

iOS-董彬的专栏 2114

iOS开发中的Html解析方法

本文转载至http://mobile.51cto.com/iphone-429980.htm 本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标题。 AD:2014WOT全球软件技术峰会北京站 课程视频发布 初次解析html,使用是网上的...

a1311010193的博客 123

HTMLReader vs 其他解析库:为什么它是iOS最佳HTML解析工具?

HTMLReader 是一款基于 Objective-C 开发的 HTML 解析库,完全遵循 WHATWG 标准,为 iOS 开发者提供了专业级的 HTML 解析解决方案。无论是处理复杂的网页结构还是提取关键数据,它都能以高效、精准的方式完成任务,成为众多 iOS 项目的首选解析工具。 ## 🚀 核心优势:WHATWG 标准带来的解析精准度 HTMLReader 的最大亮点在于其严格遵循 [

gitblog_00634的博客 894

IOS常用第三方库

1:XML/HTML解析 地址:https://github.com/topfunky/hpple 2:正则表达式 地址:https://github.com/wezm/RegexKitLite 3:block工具包。将很多需要用delegate实现的方法整合成了block的形式 地址:https://github.com/zwaldowski/BlocksK

zxdsg1987的博客 171

iOS解析HTML标签

正文 前两天获取后台数据的时候,得到这么一条返回信息 "恭喜您获得font color='red'>8.1元font>现金奖励 " 本来简简单单的把返回数据展示到label上的事情一下子变得有趣起来,后台说是为了以后产品改返回内容的时候容易处理,可以这理由很强势。 很强势 但是作为开发的我们怎么处理呢,首先我们看下安卓的处理方法,安卓对处理这个还是比较粗暴的人家有系统方法

-此夜微凉 4554
上一篇: ASIHTTPRequest类库简介和使用说明以及Google App Engine for ios(转)
下一篇: win7 32位下硬盘安装64位(64位安装32位)方法(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值