是否可以使用 DOMDocument 查询前 5 个图像?
$dom = new DOMDocument;
$list = $dom->query('img');
您XPath
可以像这样获取所有图像:
$xpath = new DOMXPath($dom);
$list = $xpath->query('//img');
然后通过仅迭代前五个来限制结果。
for ($i = 0, $n = min(5, $list->length); $i < $n; ++$i) {
$node = $list->item(0);
}
XPath 是非常通用的,这要归功于它的表达式语言。但是,在这种特殊情况下,您可能不需要所有这些功能,并且简单$list = $dom->getElementsByTagName('img')
会产生相同的结果集。
您可以使用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);
}
}