2017-07-11 55 views
0

我在我的項目中使用PHP Simple HTML DOM Parser庫,但我無法弄清楚如何使方法工作。Php Simple Html - 如何將DOM轉換爲元素

首先,我將字符串轉換成DOM對象:

$html = str_get_html($rarr[$i]); 

$rarr的變量是HTML字符串元件的陣列。我想刪除自己的classtitle屬性,所以我用下面的代碼:

$html = $html->removeAttribute('class'); 
$html = $html->removeAttribute('title'); 

,但我得到了以下錯誤:

Fatal error: Call to undefined method simple_html_dom::removeAttribute() in /scripts/defios.php on line 198

Documentation,該str_get_html()從創建DOM對象一個字符串。,我認爲removeAttribute()方法不是一個DOM方法,而是一個Element方法,這就是爲什麼我得到錯誤。所以我需要將DOM以某種方式轉換爲Element。我認爲find()方法可以完成這項工作,但問題是我無法使用它,因爲數組中的html元素是隨機的(一些是div,跨度,而且沒有共同的類或id),所以該方法並沒有真正幫助我。更多的DOM本身就是元素,所以我不想選擇DOM內的東西,而是將整個DOM轉換爲元素。

我需要做的就是刪除該類和標題,所以任何幫助將不勝感激。

+0

你找不到我的答案有幫助?請讓我知道如何才能更好地改進它。謝謝。 – MackProgramsAlot

回答

2

這裏的我會怎樣消除這些:

foreach($html->find('[class]') as $el) $el->removeAttribute('class'); 
foreach($html->find('[title]') as $el) $el->removeAttribute('title'); 
1

關鍵是要訪問孩子屬性:看看下面的例子,並調整它的工作!

$html = str_get_html($rarr[$i]); 
    foreach($html as $e) 
    { 
     $tag = $e->children[0]; // get the outer most element 
     $tag->removeAttribute('class'); 
     $tag->removeAttribute('title'); 
    }