Привет, ребята у меня есть этот HTML код:Получение элемента внутри другого элемента с помощью класса PHP DOMDocument
<div class="post-thumbnail2">
<a href="http://example.com" title="Title">
<img src="http://linkimgexample/image.png" alt="Title"/>
</a>
</div>
Я хочу, чтобы получить значение Src изображения (http://linkimgexample/image.png) и значение HREF ссылки (http://example.com) Использование PHP DOMDocument
, что я сделал, чтобы получить ссылку на что-то вроде этого:
$divs = $dom->getElementsByTagName("div");
foreach($divs as $div) {
$cl = $div->getAttribute("class");
if ($cl == "post-thumbnail2") {
$links = $div->getElementsByTagName("a");
foreach ($links as $link)
echo $link->getAttribute("href")."<br/>";
}
}
я мог бы сделать то же самое для Src IMG
$imgs = $div->getElementsByTagName("img");
foreach ($imgs as $img)
echo $img->getAttribute("src")."<br/>";
но когда-то на сайте нет изображений и кода Html как то:
<div class="post-thumbnail2">
<a href="http://example.com" title="Title"></a>
</div>
поэтому мои вопросы, как я мог бы получить значение 2 в то же время это означает, что при наличии нет изображения я показать некоторые сообщения
, чтобы быть более ясным, что это пример:
<div class="post-thumbnail2">
<a href="http://example1.com" title="Title">
<img src="http://linkimgexample/image1.png" alt="Title"/>
</a>
</div>
<div class="post-thumbnail2">
<a href="http://example2.com" title="Title"></a>
</div>
<div class="post-thumbnail2">
<a href="http://example3.com" title="Title">
<img src="http://linkimgexample/image2.png" alt="Title"/>
</a>
</div>
я хочу, чтобы результат
http://example1.com - http://linkimgexample/image1.png
http://example2.com - there is no image here !
http://example3.com - http://linkimgexample/image2.pn
Спасибо большое! когда я использую XPath, я не получаю imageLink, я все еще пытаюсь заставить его работать, не могли бы вы объяснить мне эту часть: В чем разница между $ imgList = $ xpath-> query ("// img", $ link); и $ imgList = $ xpath-> query ("./ img", $ link); – xochn
Ну '// img' возвращает рекурсивно все элементы изображения под корнем документа, что, вероятно, не является тем, что вы хотите, поскольку это означает, что $ imageLink всегда указывает на src первого элемента' 'в вашем документе. Вероятно, вы захотите использовать '.// img' (обратите внимание на точку в начале, которая обозначает текущий узел), которая ищет элементы img под текущим узлом (который предоставляется через второй параметр' query'). './img' возвращает только те элементы img, которые являются прямыми дочерними элементами a-элемента. – vstm