xPath 选择器无法正常工作

xPath selector does not work correctly

我有一个功能可以在 section 标签中抓取图像 src 属性 。但它给了我 这个指定部分标签 中的图像 src(由 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



但它应该 return 首先 link 而不是其他。

由于<article class="contentpaneopen_text">里面有多个<img>children,所以得到多个结果是正常的。

您的 xpath 需要更精确。我们可以看到,你要匹配的那个也应该有一个parent <a> 并且应该有一个title 属性

试试:

//article[@class="contentpaneopen_text"]//a/img[@title!='']/@src