【发布时间】:2012-09-28 14:01:06
【问题描述】:
我正在尝试在我的 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 声明为DOMText 时,我可以在节点之前插入文本,但是当我使用DOMNode 尝试此操作时,我收到以下错误(Demo):
警告:DOMNode::insertBefore():无法获取 DOMNode
【问题讨论】:
标签: html domdocument php