使用PHP DOM将创建的元素插入到HTML标签开头

5
我尝试使用 DOM 在页面的开头 <head> 标签后立即插入一个 HTML <base> 标签。我已经尝试使用 appendChild,但它只会在 </head> 之前插入,这是不好的。
代码如下:
$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href', $url);
$head->parentNode->insertBefore($base, $head);

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

有什么想法吗?回答正确的话,我会请你喝啤酒!


parentNode 是必要的吗?我假设 heads 的 parentNode 是 html。 - fabrik
1个回答

13
$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>元素已经有子元素,则在<head>的第一个子元素之前插入<base>元素。如果<head>没有子元素,则将其附加到<head>上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接