У меня есть этот html-код:
<html> <head> ... </head> <body> <div> <div class="foo" data-type="bar"> SOMECONTENTWITHMORETAGS </div> </div> </body> Я уже могу получить элемент «foo» (но только его содержимое) с помощью этой функции:
 private function get_html_from_node($node){ $html = ''; $children = $node->childNodes; foreach ($children as $child) { $tmp_doc = new DOMDocument(); $tmp_doc->appendChild($tmp_doc->importNode($child,true)); $html .= $tmp_doc->saveHTML(); } return $html; } 
Но я хотел бы вернуть все теги html (включая его атрибуты) DOMElement. Как я могу это сделать?
  Используйте необязательный аргумент для DOMDocument::saveHTML : это говорит: «Вывести только этот элемент». 
 return $node->ownerDocument->saveHTML($node); 
  Обратите внимание, что аргумент доступен только из PHP 5.3.6.  До этого вам нужно вместо этого использовать DOMDocument::saveXML .  Результаты могут несколько отличаться.  Кроме того, если у вас уже есть ссылка на документ, вы можете просто сделать это: 
 $doc->saveHTML($node); 
PHP Простой HTML DOM Parser должен выполнять эту работу!