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

DrS*_*oon 3 php dom setattribute appendchild getelementsbytagname

我正在尝试使用dom在页面<base>的开始<head>标记之后立即插入HTML 标记.我尝试过使用appendChild哪个只是在它之前插入它</head>是不好的.

代码即时使用:

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

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

有任何想法吗?啤酒的正确答案!

Dal*_*dal 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);
}
Run Code Online (Sandbox Code Playgroud)

如果<head>元素已经有子元素,它会<base><head>第一个子元素之前插入元素.如果<head>没有孩子,它只是附加它<head>.

  • *glug glug glug* (7认同)