2012-07-20 42 views
10

Xin lỗi nếu điều này được đăng lại, nhưng tôi không thể quên được nó và tôi đã thử tất cả các tài liệu và ví dụ có sẵn mà tôi có thể tìm thấy.Lấy các phần tử DOM theo tên thẻ với DOMDocument :: loadHTML và getElementsByTagName

tôi đang cố gắng để có được những img yếu tố đầu tiên của một chuỗi chứa 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); 

này spits object(DOMNodeList)#57 (0) { } khi cần tìm ra một lần xuất hiện.

Tôi đã thử với XPath mà không có may mắn.

Trả lời

16

Sử dụng này:

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

Đó làm việc, cảm ơn bạn. Làm thế nào tôi có thể nhận được toàn bộ yếu tố? –

+0

Bạn muốn nhận được điều gì đặc biệt? Toàn bộ phần tử có thể truy cập thông qua DOM trong biến '$ img' trong câu trả lời của tôi. – nickb

+0

Tôi đã thành công với câu trả lời của bạn, nhưng tôi tò mò muốn biết các hoạt động của '$ img', do đó, tức là nhận được tất cả phần tử (' echo $ img; 'không chỉ in phần tử). –

Các vấn đề liên quan