需要PHP domDocument的帮助

时间:2013-05-16 11:25:51

标签: php domdocument

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

1 个答案:

答案 0 :(得分:2)

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

foreach($elements as $element)
{
    $after = new DOMText('Newly appended text'); // moved this inside the loop
    $element->appendChild($after);
}