下面是我的代码:
$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'))删除div,但我不知道为什么它不能工作。
我测试了很多东西,比如:
$metmet = $doc->documentElement;
$divMeta = $metmet->getElementById('meta')->item(0);
$metmet->removeChild($divMeta);但它不起作用。有什么想法吗?
发布于 2012-10-18 20:51:53
removeChild方法从节点中删除一个子元素。div不能是document对象的子元素,只能是<html> (在HTML文档中)。
找到要删除的div之后,需要获取它的父节点。然后在这上面调用removeChild。
$divMeta->parentNode->removeChild($divMeta)发布于 2012-10-18 20:51:44
下面的代码应该可以工作:
$divMeta = $doc->getElementById('meta');
$divMeta->parentNode->removeChild($divMeta);removeChildparentNodehttps://stackoverflow.com/questions/12955079
复制相似问题