php - leer - ¿Cómo obtener el código html del nodo DOMElement?
loadxml php (2)
Use el argumento opcional para DOMDocument::saveHTML
: esto dice "solo salida este elemento".
return $node->ownerDocument->saveHTML($node);
Tenga en cuenta que el argumento solo está disponible desde PHP 5.3.6. Antes de eso, necesitas usar DOMDocument::saveXML
en DOMDocument::saveXML
lugar. Los resultados pueden ser ligeramente diferentes. Además, si ya tiene una referencia al documento, puede hacer esto:
$doc->saveHTML($node);
Tengo este código html:
<html>
<head>
...
</head>
<body>
<div>
<div class="foo" data-type="bar">
SOMECONTENTWITHMORETAGS
</div>
</div>
</body>
Ya puedo obtener el elemento "foo" (pero solo su contenido) con esta función:
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;
}
Pero me gustaría devolver todas las etiquetas html (incluidos sus atributos) de DOMElement. ¿Como puedo hacer eso?
PHP Simple HTML DOM Parser debería hacer el trabajo!