是否可以使用DOMDocument查询前5个图像?

时间:2013-07-15 06:26:02

标签: php dom

是否可以使用DOMDocument查询前5个图像?

$dom = new DOMDocument;
       $list = $dom->query('img');

2 个答案:

答案 0 :(得分:7)

使用XPath您可以像这样获取所有图片:

$xpath = new DOMXPath($dom);
$list = $xpath->query('//img');

然后你只通过迭代前五个来限制结果。

for ($i = 0, $n = min(5, $list->length); $i < $n; ++$i) {
    $node = $list->item(0);
}

由于expression language,XPath非常通用。但是,在这种特殊情况下,您可能不需要所有这些功能,而简单的$list = $dom->getElementsByTagName('img')会产生相同的结果集。

答案 1 :(得分:1)

您可以使用getElementsByTagName构建图像数组:

$dom = new DOMDocument();
$dom->loadHTML($string);
$images = $dom->getElementsByTagName('img');
$result = array();
for ($i=0; $i<5; $i++){
    $node = $images->item($i);
    if (is_object( $node)){
        $result[] = $node->ownerDocument->saveXML($node);
    }
}