我想将一些文本附加到具有相同类的div。
$dom = new DOMdocument();
$dom->formatOutput = true;
@$dom->loadHTMLFile('first.html');
$xpath = new DOMXPath($dom)
$after = new DOMText('Newly appended text');
$elements = $xpath->query('//div[@class="mix"]');
foreach($elements as $element)
{
$element->appendChild($after);
//echo $dom->saveHTML();
}
$dom->saveHTMLFile('first.html');
但是当我打开first.html时,附加的文本只会附加到上面的类的最后一个div。 如果我取消注释saveHTML(),那么它会显示完美的结果。保存后只是问题。
答案 0 :(得分:2)
您无法将相同的DOM节点附加到树中的多个点,这就是您在此处所做的。您需要每次创建一个单独的(但相同的)节点:
foreach($elements as $element)
{
$after = new DOMText('Newly appended text'); // moved this inside the loop
$element->appendChild($after);
}