我正在尝试在我的 html 字符串中插入节点。我的目标是在每个 h2 标签之前插入一个元素。
为此,我正在使用:
$htmlString = "<h2>some html</h2>";
$DOM = new DOMDocument();
$DOM->loadHTML($htmlString);
$itemTitles = $DOM->getElementsByTagName('h2');
for($i = 0; $i < $itemTitles->length; $i ++)
{
$helpNavigatorContents[] = $itemTitles->item($i)->nodeValue;
$textBefore = new DOMNode(
'<a name="'.$itemTitles->item($i)->nodeValue.'"></a>'
);
$itemTitles->item($i)->parentNode->insertBefore(
$textBefore,
$itemTitles->item($i)
);
}
$htmlString = $DOM->saveHTML($DOM);
在这里我有一个问题$textBefore
。当我声明$textBefore
为 aDOMText
时,我可以在节点之前插入文本,但是当我尝试使用 时DOMNode
,我收到以下错误(Demo):
警告:DOMNode::insertBefore():无法获取 DOMNode