2012-10-18 81 views
2

這裏是我的代碼:PHP DomDocument:如何刪除一個div?

$doc = new DOMDocument(); 
$doc->loadHTML(stripslashes($sContent)); 

// si le meta existe alors il y a un sondage 
if($doc->getElementById('meta') != null){ 
    $nombreMeta = $doc->getElementById('meta')->nodeValue; 
    $numSondage = $doc->getElementById('meta')->getAttribute('class'); 
    for($i=0;$i<$nombreMeta;$i++){ 
     $meta = $meta."0,"; 
    } 
    $meta = substr($meta,0,-1); 
    $divMeta = $doc->getElementById('meta'); 
    $oldchapter = $doc->removeChild($divMeta); 
    $oHead = $doc->getElementsByTagName('head')->item(0); 
    $oMeta2 = $doc->createElement('meta'); 
    $oMeta2->setAttribute('name',"metapoll".$numSondage); 
    $oMeta2->setAttribute('content',$meta); 
    $oHead->insertBefore($oMeta2, $oHead->firstChild); 
    $sContent = $doc->saveHTML(); 
} 

我試圖用id="meta"($doc->getElementById('meta'))除去股利,但我不知道爲什麼它不工作。

我已經測試了很多東西,如:

$metmet = $doc->documentElement; 
$divMeta = $metmet->getElementById('meta')->item(0); 
$metmet->removeChild($divMeta); 

但它不工作。有任何想法嗎 ?

+0

你也應該發佈你的HTML代碼。我的第一個猜測是你沒有任何標籤ID爲「meta」,但你寧願在你的中有「meta」標籤。我對嗎? –

+0

[如何使用DOMDocument類刪除HTML元素](http://stackoverflow.com/questions/1171597/how-to-remove-an-html-element-using-the-domdocument-class) – hakre

回答

1

removeChild方法從節點刪除一個子元素。 div不能是document對象的子元素,只有<html>可以(在HTML文檔中)。

找到要刪除的div後,您需要獲取其父節點。然後請撥打removeChild

$divMeta->parentNode->removeChild($divMeta)