2012-07-20 14 views
10

Lo siento si esto se publica, pero no puedo entenderlo y he intentado toda la documentación disponible y ejemplos que pude encontrar.Obtiene elementos DOM por nombre de etiqueta con DOMDocument :: loadHTML y getElementsByTagName

estoy tratando de conseguir el primer img elemento de una cadena que contiene HTML

PHP

$html = '<p><img src="http://placekitten.com/200/300" alt="" width="200" height="300" /></p>'; 
$dom = new DOMDocument; 
$dom->loadHTML($html); 
$imgs = $dom->getElementsByTagName('img'); 
var_dump($imgs); 

Este escupe object(DOMNodeList)#57 (0) { } cuando debería encontrar la ocurrencia.

Lo he intentado con XPath sin tener suerte tampoco.

Respuesta

16

Utilice esta:

$img = $dom->getElementsByTagName('img')->item(0); 
echo $img->attributes->getNamedItem("src")->value; 
+0

que funcionaba, gracias. ¿Cómo obtendría el elemento completo? –

+0

¿Qué desea obtener específicamente? ? El elemento completo es accesible a través del DOM en la variable '$ img' en mi respuesta. – nickb

+0

Ya tuve éxito con su respuesta, pero tengo curiosidad por conocer el funcionamiento de '$ img', por lo tanto, obtengo todo el elemento (' echo $ img; 'no solo imprime el elemento). –

Cuestiones relacionadas