`

关于iphone 利用hpple解析html的问题

 
阅读更多

 最近在用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;
}

 

 

分享到:
评论

相关推荐

    iphone hpple 解析html,xml

    `hpple`是一个用于Objective-C的HTML解析器,它使得在iPhone应用中处理HTML内容变得更加简单。本篇文章将详细探讨`hpple`库以及如何使用它来解析HTML和XML。 `hpple`是由Blake Watters开发的开源库,它是基于libxml...

    hpple解析小列子

    关于hpple资源配置问题:需要引入libxml2.dylib框架,然后双击工程名搜索"Header Search Paths",添加"${SDKROOT}/usr/include/libxml2",之后搜索“Other Linker Flags”添加“-lxml2”,就可以使用hpple资源包了。

    轻量级html解析库:Hpple

    例如,可以结合AFNetworking库发送HTTP请求,获取网页的HTML数据,再用Hpple解析出关键信息。 总的来说,Hpple作为一款轻量级的HTML解析库,提供了方便且强大的XPath查询功能,使得iOS和Mac OS X开发者能够高效地...

    IOS应用源码之hpple读取html文件内容的代码 更新了下拉刷新功能CocoaChina.zip

    结合以上两个核心功能,这个源码示例可能是展示如何在iOS应用中加载HTML内容,通过hpple解析HTML,同时利用`UIRefreshControl`实现下拉刷新的实践案例。这为开发者提供了在实际项目中处理网络数据和UI交互的参考。

    hpple:受Hpricot启发,用于Objective-C的XMLHTML解析器

    描述hpple:XPathQuery库上一个不错的Objective-C包装器,用于解析HTML。 受到为什么幸运的的。学分Hpple由Geoffrey , 和。特征通过XPath轻松搜索(已计划CSS选择器) 解析HTML(即将推出XML) 轻松访问标签的内容...

    httpParse:iOS使用hpple库解析HTML原始码-源码解析

    接下来,我们来看一个简单的示例,演示如何从网页获取HTML内容并使用hpple解析: ```objc #import "ViewController.h" #import "TFHpple.h" @interface ViewController () @end @implementation ViewController ...

    IOS应用源码之【框架】HTML解析 for iOS.rar

    这个压缩包“【框架】HTML解析 for iOS.rar”显然包含了关于如何在iOS应用中解析HTML的相关源码,这对于我们理解iOS平台上的网络数据处理和网页内容呈现非常有帮助。 首先,我们需要了解iOS中常用的HTML解析库。最...

    第三方解析工具

    在iOS开发中,可以使用WKWebView进行基本的HTML渲染,但如果需要更深度的解析和操作,可以借助如HTMLKit或hpple这样的第三方库。 标签"0001"可能表示这是一个基础的或者特定版本的知识点,但没有具体信息,我们无法...

    Myhpple:我想cocoapod可以使用最新的hpple

    总的来说,通过正确配置CocoaPods和`Podfile`,你可以轻松地在你的iOS项目中集成和更新hpple库,从而利用其强大的HTML解析功能。记得在使用过程中注意库的版本兼容性和稳定性,确保代码的可靠运行。

    一款不错的解析HTML案例

    标题中的“一款不错的解析HTML案例”表明这是一个关于iOS应用程序的项目,主要功能是解析HTML内容。这个应用不仅可以解析网页的源代码,还能够展示源码并从中提取关键信息,如图片和标题。这对于iOS开发者,尤其是对...

    htmpple:从 HTML 到 iOS6 NSAttributedString 的轻量级翻译层

    模板基于 hpple XML 解析器构建的从 HTML 到 iOS6 NSAttributedString 的轻量级翻译层: ://github.com/topfunky/hpple 本项目中没有CoreText 代码如果您仍然支持 iOS6 之前的版本(或想要更多功能),您可能需要 。...

    freezing-bear:用于整数序列在线百科全书的 iOS 应用程序

    在实现过程中,"freezing-bear" 应用利用了Hpple项目提供的代码。Hpple是一个用Objective-C编写的HTML解析器,它是基于libxml2库的,能够解析HTML和XML文档。在"freezing-bear" 中,Hpple可能被用来解析来自在线百科...

    AmiAmiReborn:上不了架的可怜app, 用来看amiami 的小人们

    iphone 4" / 3.5" 可以从这边试玩 如果你有JB 可以帮我试试档案能不能用, 如果不能用, 而且你又很好心的话, 可以发个信告诉我, 我会很感激, 谢谢. 第三方套件 hpple parse html 网页. SDWebImage 异步读取网路...

    NDHpple, 在XMLPathQuery库上,NDHpple是快速包装器.zip

    NDHpple, 在XMLPathQuery库上,NDHpple是快速包装器 描述NDHpple是基于 Hpple的XMLPathQuery库上的快速包装器。 CREDITSNDHpple是由 Nicolai Davidsson,基于 Hpple,由 Geoffrey Grosenbach, Topfunky公

    WeChat-XMPP:基于XMPP实现微信部分功能

    WeChat-XMPP 基于XMPP实现微信部分功能 运行时注意将AppDelegate中hostname修改为自己服务器地址 技术选型: *XMPP通讯库 'XMPPFramework' ...*图片缓存 'Kingfisher' *状态提示 'MBProgressHUD' ...*XPath解析 'hpple'

    如何用IOS调用WebService(SOAP接口)

    可以使用内置的`NSXMLParser`或第三方库如KissXML、hpple等进行解析。 这两种方法各有优缺点。使用WSDL2ObjC工具能够自动生成易于理解和使用的类,但可能无法处理动态的或复杂的接口。直接网络请求则更灵活,但需要...

Global site tag (gtag.js) - Google Analytics