使用DOMDocument :: loadHTML和getElementsByTagName按标记名称获取DOM元素

时间:2012-07-20 00:27:03

标签: php xpath domdocument

很抱歉,如果这是重新发布的,但我无法理解它,我已经尝试了所有可用的文档和示例。

我正在尝试获取包含HTML

的字符串的第一个img元素

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) { }

我尝试过XPath也没有运气。

2 个答案:

答案 0 :(得分:18)

使用此:

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

答案 1 :(得分:0)

@nickb 已经提供了正确的答案,但是您也可以这样做,而不必在 @nickb提供的代码的第二行中使用getNamedItem() ,就像这样:

echo $img->attributes->src->value;
  

注意:我想在 @nickb 的答案中添加上面的代码作为注释,但是我至少需要50个声誉。如果有人可以将上面的代码行作为对 @nickb 答案的注释,请告诉我。然后,我将删除答案。