使用PHP DOM在html标记的开头插入创建的元​​素

时间:2010-07-05 14:06:23

标签: php dom appendchild setattribute getelementsbytagname

我正在尝试使用dom在页面打开<base>标记后立即插入HTML <head>标记。我尝试使用appendChild,只是在</head>之前插入它,这是不行的。

代码使用:

$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href', $url);
$head->parentNode->insertBefore($base, $head);

这会在<base>之前插入<head>标记,这仍然不行!

有什么想法吗?啤酒的正确答案!

1 个答案:

答案 0 :(得分:9)

$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href',$url);

if ($head->hasChildNodes()) {
    $head->insertBefore($base,$head->firstChild);
} else {
    $head->appendChild($base);
}

如果<head>元素已有子元素,则会在<base>的第一个孩子之前插入<head>元素。如果<head>没有子女,则只需将其附加到<head>