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 を取得できませんでした