1

我想将一些文本附加到具有相同类的 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() 那么它显示完美的结果。只是保存后的问题。

4

1 回答 1

2

您不能将相同的 DOM 节点附加到树中的多个点,这就是您在此处所做的。您每次都需要创建一个单独的(但相同的)节点:

foreach($elements as $element)
{
    $after = new DOMText('Newly appended text'); // moved this inside the loop
    $element->appendChild($after);
}
于 2013-05-16T11:35:17.770 回答