2012-07-20 128 views
10

對不起,如果這是重新發布,但我不能包裝我的頭腦,我已經嘗試了所有可用的文檔和示例,我可以找到。通過標記名稱與DOMDocument :: loadHTML和getElementsByTagName獲取DOM元素

我想獲得包含字符串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); 

此吐object(DOMNodeList)#57 (0) { }的第一img元素時,應該找到一個發生。

我用XPath嘗試過也沒有運氣。

回答

16

使用此:

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

這工作,謝謝。我將如何獲得整個元素? – 2012-07-20 00:47:56

+0

你想具體什麼? ?我的答案中的整個元素可以通過'$ img'變量中的DOM訪問。 – nickb 2012-07-20 00:48:34

+0

我已經成功地回答了您的問題,但我很想知道'$ img'的工作原理,即得到所有元素('echo $ img;'不僅僅是打印元素)。 – 2012-07-20 00:53:00