iT邦幫忙

0

PHP Simple HTML DOM Parser

php

http://simplehtmldom.sourceforge.net/index.htm
各位好,希望有用過這個class的朋友可以分享一下怎麼清除DOM

foreach ($html->find('tr') as $tr) {
	foreach ($tr->find('td') as $k => $td) {
		if ($k >= 6) {
			// 清除此td
		}
	}
}

作者網站好像沒有提到remove DOM的方式

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

6
fillano
iT邦超人 1 級 ‧ 2010-08-11 20:19:18
最佳解答

你要不要改用這個:
http://tw2.php.net/manual/en/book.dom.php

simplehtmldom看起來沒有增刪node的功能,不然你要自己改他的原始碼。你可以要求作者看看。

如果你想自己嘗試,可以試著去改simple_html_node類別看看。不過我沒仔細看他的結構,不知道增刪child node的功夫大不大。你可以稍微trace一下他的程式,全部不到1000行,應該不會花很多時間。如果做出來,還可以donate給作者。

chan15 iT邦新手 2 級 ‧ 2010-08-11 20:31:40 檢舉

多謝fillano大哥,已經試出來了
$td->outertext = ''

shunyuan iT邦研究生 1 級 ‧ 2010-08-11 22:02:59 檢舉

大師。讚

fillano iT邦超人 1 級 ‧ 2010-08-11 22:44:39 檢舉

這也是個方法啦...不過這樣改過以後不知道能不能再次使用他的$html->find()等函數,因為node tree可能會跟你改過的不一致。

稍微看過simplehtmldom,他定義了兩個類別,simple_html_node跟simple_html_dom,後者會剖析html文字,然後產生以前者組織起來的node tree。

我要發表回答

立即登入回答