2012-07-20 153 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

相关问题