htmlparser
方法可以參考
tfhpple方法的使用可以看
tfhpple,因為它很簡單,也好用,但是它的功能不是很完完善。比如,不能獲取children node。它是用xpath來定位和解析html或者xml。
xpath教程:
nsdata *htmldata = [nsstring stringwithcontentsoffile:[nsurl urlwithstring:@""] encoding:nsutf8stringencoding error:nil];會報:[nsurl getfilesystemrepresentation:maxlength:]: unrecognized selector sent to instance 0x6bcad20
nsdata *htmldata = [nsstring stringwithcontentsofurl:[nsurl urlwithstring:@""] encoding:nsutf8stringencoding error:nil];匹配還是有問題
應該這個更合適點
nsdata *htmldata = [nsdata datawithcontentsofurl:[nsurl urlwithstring:@""]];下面講一下我自己實現的過程中的關鍵**:
解析非utf-8頁面的思路 :
把網路流返回的nsdate的gb2312(假設是這個)轉換成tfhpple能正確解析的utf-8編碼的nsdata;
將其中一行的轉換成utf-8形式的
可以採用如下兩種方案解決:
方法一:
//轉換成gbk編碼方法二:nsstringencoding gbencoding = cfstringconvertencodingtonsstringencoding(kcfstringencodinggb_18030_2000);
nsdata *htmldata = [nsdata datawithcontentsofurl:[nsurl urlwithstring:@"可以是非utf-8的網頁"]];
nsstring *htmlstr = [[[nsstring alloc] initwithdata:htmldata encoding:gbencoding] autorelease];
nsdata *htmldata = [nsdata datawithcontentsofurl:[nsurl urlwithstring:@"可以是非utf-8的網頁"]];方法一或者二選其一,然後加下面的**就可以實現簡單解析了cfstringref bgcfstr = cfstringcreatewithbytes(null, [htmldata bytes], [htmldata length], kcfstringencodinggb_18030_2000, false);
nsstring *gbhtmlstr = (nsstring *)bgcfstr;
nsstring *utf8htmlstr = [htmlstr stringbyreplacingoccurrencesofstring:@""很有用的**:withstring:@""];
nsdata *htmldatautf8 = [utf8htmlstr datausingencoding:nsutf8stringencoding];
tfhpple *xpathparser = [[tfhpple alloc] initwithhtmldata:htmldatautf8];
nsarray *elements = [xpathparser search:@"//option"];
tfhppleelement *element = [elements objectatindex:0];
nsstring *h3tag = [element content];
nslog(@"%@",h3tag);
mlabel.text = h3tag;
[xpathparser release];
[htmldata release];
碰到的問題:nsdata --》nsstring
nsdata
*htmldata = [htmlstr datausingencoding:nsutf8stringencoding];
nsstring --》nsdata
nsstring
*htmlstr = [[[
nsstring
alloc] initwithdata:htmldata encoding:nsutf8stringencoding] autorelease];
iOS html解析1(包含中文字元)
htmlparser 方法可以參考 tfhpple方法的使用可以看 tfhpple,因為它很簡單,也好用,但是它的功能不是很完完善。比如,不能獲取children node。它是用xpath來定位和解析html或者xml。xpath教程 具體的方法可以參考 英文 介紹 objective c nsd...
藍芽4 0(包含BLE)簡介
國際藍芽聯盟 bt sig,ti 是 企業成員之一 通過的乙個標準藍芽無線協議。主要的新特性是在藍芽標準版本上新增了4.0 藍芽規範 2010 年6 月 針對無線應用程式不 低功耗 低延遲 小資料報 癿傳輸需求 主要是圍繞手機和個人電腦系統 但也可以用亍其他應用 程式 設計蘋果外圍無需 mfi mf...
20 包含min的函式
定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 在該棧中,呼叫min push及pop的時間複雜度應為o 1 把每次壓棧時的最小元素 每次新壓棧元素和之前的最小元素進行比較 放進另外乙個專門存放最小值的輔助棧中。例如 1 初始空棧,壓入元素3,目前3是最小值,放入輔助棧,...