[英]XPATH DomDocument retrieivng first node of div elements
Here is my HTML: 这是我的HTML:
<div class="content">
<div class="post">
<img class="img" src="getme"/> (<~~ retrieve this one)
<img class="img" src="notme"/>
<img class="img" src="notme"/>
</div>
<div class="post">
<img class="img" src="getme"/> (<~~ retrieve this one)
<img class="img" src="notme"/>
<img class="img" src="notme"/>
</div>
</div>
Here is the XPATH's I've used: 这是我用过的XPATH:
//div[@class="content"]//div[@class="post"]//@src[1]
(//div[@class="content"]//div[@class="post"]//@src)[1]
What I'm trying to accomplish is retrieving only the ones I explicitly stated as to retrieve. 我想要完成的只是检索我明确声明要检索的那些。 When I use the second Xpath (
(//div[@class="content"]//div[@class="post"]//@src)[1]
) one it only provides the first img src and thats it (not the first one for every div post element) 当我使用第二个Xpath(
(//div[@class="content"]//div[@class="post"]//@src)[1]
)一个它只提供第一个img src,就是这样(不是每个div post元素的第一个)
Use the following xpath query: 使用以下xpath查询:
//div[@class="post"]/img[1]/@src
Example: 例:
$html = <<<EOF
<div class="content">
<div class="post">
<img class="img" src="getme"/> (<~~ retrieve this one)
<img class="img" src="notme"/>
<img class="img" src="notme"/>
</div>
<div class="post">
<img class="img" src="getme"/> (<~~ retrieve this one)
<img class="img" src="notme"/>
<img class="img" src="notme"/>
</div>
</div>
EOF;
$doc = new DOMDocument();
@$doc->loadHTML($html);
$selector = new DOMXPath($doc);
foreach($selector->query('//div[@class="post"]/img[1]/@src') as $node) {
var_dump($node->nodeValue);
}
Output: 输出:
string(5) "getme"
string(5) "getme"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.