我有一个函数可以在src标记中获取图像的section属性。但是它为我提供了图像( src of ),这是指定的节标记(由class选择)。
$doc = new DOMDocument();
@$doc->loadHTMLFile('http://www.akairan.com/health/bimari-behdasht/news201691911413397586.html');
$finder = new DomXPath($doc);
$imgNodes = $finder->query('//article[@class="contentpaneopen_text"]//img/@src');
$images = array();
foreach($imgNodes as $node) {
echo $node->nodeValue . "<br />";
}结果是:
http://cdn64.akairan.com/files/images/20160919/20169/2016919114132436510a.jpg
http://cdn2.akairan.com/akairan/telegram.jpg
http://ser8.akairan.com/img/cdn/125/30/icmjthidoctor.ir.jpg
http://ser9.akairan.com/img/cdn/180/80/akairan__aka__m998__027343234141194102a.jpg
http://ser9.akairan.com/img/cdn/180/80/akairan__aka__m998__074496544283135102a.jpg但它应该只返回第一环节,而不是其他环节。
发布于 2016-09-27 08:24:28
由于在<img>中有多个<article class="contentpaneopen_text">子级,所以获得多个结果是正常的。
您的xpath需要更精确。我们可以看到,您想要匹配的对象也应该有一个父<a>,并且应该有一个title属性。
试着:
//article[@class="contentpaneopen_text"]//a/img[@title!='']/@srchttps://stackoverflow.com/questions/39640141
复制相似问题