2012-07-20 12 views
10

Bu yeniden gönderilirse üzgünüz, ancak aklımı bu konuya dolamıyorum ve bulabildiğim tüm belgeleri ve örnekleri denedim. DOMDocument :: loadHTML ve getElementsByTagName ile etiket adlarına göre DOM öğelerini alın

Ben kez kullanıldığını bulmak gerekirken bir dize içeren 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); 

Bu tükürür object(DOMNodeList)#57 (0) { } ilk img elemanını almaya çalışıyorum.

XPath ile de şanssız çalıştım.

cevap

16

bunu kullanın: çalışmıştır

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

, teşekkür ederim. Bütün elementi nasıl alabilirim? –

+0

Özellikle ne almak istiyorsun? ? Tüm öğeye, cevabımdaki "$ img" değişkeninde DOM yoluyla erişilebilir. – nickb

+0

Zaten cevabınızı başardım, ancak $ img'nin çalışmalarını bildiğim için çok merak ediyorum, yani tüm elementi al ('echo $ img;' sadece elementi basmaz). –