Да, ответ, который дал Майк, правильный. Вот простой пример, который берет найденные узлы
и создает новый документ.
$newdoc = new DOMDocument;
$nodes = $oldoc->getElementsByTagName('p');
foreach($nodes as $node)
{
$newnode = $newdoc->importNode($node, true);
$newdoc->appendChild($newnode);
}
//print the new html
$html = $newdoc->saveHTML();