|
解析器不僅僅只是幫助我們驗證html文檔;更能解析不符合W3C標準的html文檔。它使用了類似jQuery的元素選擇器,通過元素的id,class,tag等等來查找定位;同時還提供添加、刪除、修改文檔樹的功能。當然,這樣一款強大的html Dom解析器也不是盡善盡美;在使用的過程中需要十分小心內存消耗的情況。不過,不要擔心;本文中,筆者在最后會為各位介紹如何避免消耗過多的內存。
開始使用
上傳類文件以后,有三種方式調用這個類:
從url中加載html文檔
從字符串中加載html文檔
從文件中加載html文檔
復制代碼 代碼如下:
<?php
// 新建一個Dom實例
$html = new simple_html_dom();
// 從url中加載
$html->load_file('http://www.jb51.NET');
// 從字符串中加載
$html->load('<html><body>從字符串中加載html文檔演示</body></html>');
//從文件中加載
$html->load_file('path/file/test.html');
?>
如果從字符串加載html文檔,需要先從網絡上下載。建議使用cURL來抓取html文檔并加載DOM中。
查找html元素
可以使用find函數來查找html文檔中的元素。返回的結果是一個包含了對象的數組。我們使用HTML DOM解析類中的函數來訪問這些對象,下面給出幾個示例:
復制代碼 代碼如下:
<?php
//查找html文檔中的超鏈接元素
$a = $html->find('a');
//查找文檔中第(N)個超鏈接,如果沒有找到則返回空數組.
$a = $html->find('a', 0);
// 查找id為main的div元素
$main = $html->find('div[id=main]',0);
// 查找所有包含有id屬性的div元素
$divs = $html->find('div[id]');
// 查找所有包含有id屬性的元素
$divs = $html->find('[id]');
?>
還可以使用類似jQuery的選擇器來查找定位元素:
復制代碼 代碼如下:
<?php
// 查找id='#container'的元素
$ret = $html->find('#container');
// 找到所有class=foo的元素
$ret = $html->find('.foo');
// 查找多個html標簽
$ret = $html->find('a, img');
// 還可以這樣用
$ret = $html->find('a[title], img[title]');
?>
解析器支持對子元素的查找
復制代碼 代碼如下:
<?php
// 查找 ul列表中所有的li項
$ret = $html->find('ul li');
//查找 ul 列表指定class=selected的li項
$ret = $html->find('ul li.selected');
?>
如果你覺得這樣用起來麻煩,使用內置函數可以輕松定位元素的父元素、子元素與相鄰元素
復制代碼 代碼如下:
<?php
// 返回父元素
$e->parent;
// 返回子元素數組
$e->children;
// 通過索引號返回指定子元素
$e->children(0);
// 返回第一個資源速
$e->first_child ();
// 返回最后一個子元素
$e->last _child ();
// 返回上一個相鄰元素
$e->prev_sibling ();
//返回下一個相鄰元素
$e->next_sibling ();
?>
元素屬性操作
使用簡單的正則表達式來操作屬性選擇器。
[attribute] 主站蜘蛛池模板: 杀破狼·贪狼 2017 古天乐| 林丹出轨视频| 阴道| 料音| 陷入纯情| 乡村女教师乱淫交片| 电影《遗产》韩国丧尸| 浪人街| 许良| 新垣结衣18部无删减电影| 小镇姑娘高清在线观看| 蜘蛛侠4英雄无归| 2025微信头像最新版本| 男和男性猛交ⅹxxx双龙视频| 被抛弃的青春1982| 同志父子第二部叫什么| 男人不可以穷演员表| 妙探出差3| 保镖电影大全免费| 可爱的萝拉| 黑龙江省地图高清全图| 亚洲怪谈| free xxxx japan| 李乃文电影| 武朝迷案| abo血型鉴定实验报告| 成人免费黄色电影| 拉雅| 意大利 艾伦 温暖的夜晚| 免费看黄在线看| 知否知否应是绿肥红瘦观看| 陕西卫视节目表| 回响电影| 甲种公牛1976| 古宅老友记第四季| 折纸视频教程| 刘慧茹| 韧战作文800字初中| 地狱究竟有几层电影| 日本电影忠犬八公的故事| 吸痰护理ppt课件|