最近在用happe解析html中的图片。有个翻页操作,如果请求的html中没有需要解析的标记的话会造成xmllib2的内存泄露。
这一个是happ的一个bug吧。
修改方法:
修改 XPathQuery.m 类中的
写道
NSArray *PerformXPathQuery(xmlDocPtr doc, NSString *query)
{
xmlXPathContextPtr xpathCtx;
xmlXPathObjectPtr xpathObj;
/* Create xpath evaluation context */
xpathCtx = xmlXPathNewContext(doc);
if(xpathCtx == NULL)
{
NSLog(@"Unable to create XPath context.");
return nil;
}
/* Evaluate xpath expression */
xpathObj = xmlXPathEvalExpression((xmlChar *)[query cStringUsingEncoding:NSUTF8StringEncoding], xpathCtx);
if(xpathObj == NULL) {
NSLog(@"Unable to evaluate XPath.");
return nil;
}
xmlNodeSetPtr nodes = xpathObj->nodesetval;
if (!nodes)
{
NSLog(@"Nodes was nil.");
return nil;
}
NSMutableArray *resultNodes = [NSMutableArray array];
for (NSInteger i = 0; i < nodes->nodeNr; i++)
{
NSDictionary *nodeDictionary = DictionaryForNode(nodes->nodeTab[i], nil);
if (nodeDictionary)
{
[resultNodes addObject:nodeDictionary];
}
}
/* Cleanup */
xmlXPathFreeObject(xpathObj);
xmlXPathFreeContext(xpathCtx);
return resultNodes;
}
注意红色部分一个修改为如下:
写道
if (!nodes)
{
NSLog(@"Nodes was nil.");
/* Cleanup */
xmlXPathFreeObject(xpathObj);
xmlXPathFreeContext(xpathCtx);
return nil;
}
分享到:
相关推荐
NULL 博文链接:https://o0o0o0o.iteye.com/blog/1128111
关于hpple资源配置问题:需要引入libxml2.dylib框架,然后双击工程名搜索"Header Search Paths",添加"${SDKROOT}/usr/include/libxml2",之后搜索“Other Linker Flags”添加“-lxml2”,就可以使用hpple资源包了。
html 解析实例,轻量级html解析库: Hpple ,以及它的使用
描述hpple:XPathQuery库上一个不错的Objective-C包装器,用于解析HTML。 受到为什么幸运的的。学分Hpple由Geoffrey , 和。特征通过XPath轻松搜索(已计划CSS选择器) 解析HTML(即将推出XML) 轻松访问标签的内容...
httpParse iOS使用hpple库解析HTML原始码 2017-7-19 更新了实际操作,通过get获取网页HTML原始码然后解析,加入了获取本地IP地址。
IOS应用源码之hpple读取html文件内容的代码 更新了下拉刷新功能CocoaChina.zip
Myhpple 我想cocoapod可以使用最新的hpple
模板基于 hpple XML 解析器构建的从 HTML 到 iOS6 NSAttributedString 的轻量级翻译层: ://github.com/topfunky/hpple 本项目中没有CoreText 代码如果您仍然支持 iOS6 之前的版本(或想要更多功能),您可能需要 。...
iphone 4" / 3.5" 可以从这边试玩 如果你有JB 可以帮我试试档案能不能用, 如果不能用, 而且你又很好心的话, 可以发个信告诉我, 我会很感激, 谢谢. 第三方套件 hpple parse html 网页. SDWebImage 异步读取网路...
NDHpple, 在XMLPathQuery库上,NDHpple是快速包装器 描述NDHpple是基于 Hpple的XMLPathQuery库上的快速包装器。 CREDITSNDHpple是由 Nicolai Davidsson,基于 Hpple,由 Geoffrey Grosenbach, Topfunky公
WeChat-XMPP 基于XMPP实现微信部分功能 运行时注意将AppDelegate中hostname修改为自己服务器地址 技术选型: *XMPP通讯库 'XMPPFramework' ...*图片缓存 'Kingfisher' *状态提示 'MBProgressHUD' ...*XPath解析 'hpple'
整数序列在线百科全书的 iOS 应用程序此应用程序具有允许用户搜索整数序列的基本功能。 它本质上是一个网络爬虫。 它使用来自 Hpple 项目的代码。