iOS開發中的Html解析方法
初次解析html,使用是網上的第三方類;我使用的是以下三個類,將其添加到項目中:
- #import "TFHpple.h"
- #import "TFHppleElement.h"
- #import "XPathQuery.h"
添加以上三個類必須添加一個庫,這個庫是:libxml2.2.dylib。并且還需要設置一些路徑參數,否則會一直報錯;這個路徑的設置,在 targets中,在build settings搜索Header Search Paths,將debug和release設置不同的值;
debug的值設置成:/usr/include/libxml2
release的值設置成:${SDKROOT}/usr/include/libxml2
將以上的設置好了以后,就是使用的時候;將#import "TFHpple.h"添加到解析html的類中,再寫解析方法;
一般思路如下:
1.首先將網頁的html轉換成oc能夠認識的NSString數據;用到的方法如下:
- NSString *dataString = [NSString stringWithContentsOfURL:[NSURL URLWithString:htmlString] encoding:NSUTF8StringEncoding error:nil]; //htmlString是html網頁的地址
2.將dataString轉換成NSData,給TFHpple類用
- NSData *htmlData = [dataString1 dataUsingEncoding:NSUTF8StringEncoding];
3.設置html中節點,根據節點取值,例如<p>.....</p>,可以用節點來取值;
如NSString *nodeString = @"//p";
使用htmlData和nodeString,解析自己需要的值:
- TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData];
- NSArray *elements = [xpathParser searchWithXPathQuery:nodeString]; //這個數組中就有需要的值
(TFHppleElement中提供很多方法,可以用這些方法獲取elements的值,如- (NSArray *) children;)
Demo鏈接:http://code4app.com/ios/%E8%A7%A3%E6%9E%90HTML/5167ca396803faf447000002