iOS開發中的HTML解析

來源:互聯網
上載者:User

標籤:

最近在抓取網路資料並進行解析式遇到了html格式,由於平常解析JSON和XML格式資料較多,對html的解析有些生疏了。
下面簡單記錄一下使用是網上的第三方類TFHpple類進行HTML解析。
在進行解析前,先將下面的第三方類添加到工程中:

添加以上三個類必須添加一個庫,這個庫是:libxml2.2.dylib。

還需要設定一些路徑參數這個路徑的設定,在 targets中,在build settings搜尋Header SearchPaths,將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網頁的地址

url為儲存html網頁的地址,根據資料編碼格式的不同來選擇NSString的編碼格式,格式錯誤則會報錯261

2.截取所需資料所在的位置,得到最後所需解析的欄位contEnd

3.將dataString轉換成NSData,給TFHpple類用

NSData *htmlData = [contEnddataUsingEncoding:NSUTF8StringEncoding];//contEnd是需要解析的欄位


3.設定html中節點,根據節點取值,例如

.....

,可以用節點來取值;

使用htmlData和nodeString,解析自己需要的值:

NSArray * elements 這個數組中就有需要的值

遍曆數組,就可以將需要的內容提取出來

iOS開發中的HTML解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.