У меня есть следующий HTML-файл
<body>
<div class="container">
<div class="list">
<ul>
<li>
<a href="http://website1.com" ><img src="image1.jpg"></a>
</li>
<li>
<a href="http://website2.com" ><img src="image2.jpg"></a>
</li>
<li>
<a href="http://website3.com" ><img src="image3.jpg"></a>
</li>
....
....
....
</ul>
</div>
</div>
</body>
Разбор выше HTML-файла. Я хочу вывод, как это ..
http://website1.com
image1.jpg
http://website2.com
image2.jpg
http://website3.com
image3.jpg
....
....
Видя вывод выше, вы можете догадаться, что мне нужны только значения ‘href’ и ‘src’ для каждого элемента списка.
Я пытаюсь разобрать с помощью стороннего плагина ‘simple_html_dom’.
<?php
include_once('simple_html_dom.php');
$html = new simple_html_dom();
$html->load_file("html_file.html");
foreach($html->find('div[class=list] ul li') as $li)
{
echo $li->find('a')->href."<br />";
echo $li->find('img')->src."<br />";
}
?>
но приведенный выше код не работает. Пожалуйста, скажите мне, если я сделал что-то не так или использование может помочь мне с помощью модуля PHP DOM, если вы знаете.
<?php
include_once('simple_html_dom.php');
$html = new simple_html_dom();
$html->load_file("html_file.html");
foreach($html->find('div.list a') as $a)
{
echo $a->href."<br />";
echo $a->children(0)->src."<br />";
}
?>
Вместо того, чтобы найти div[class=list] ul li
, почему вы не ищете .list li
«S? Документация для простого HTML DOM совсем не хватает, поэтому вам придется расплатиться им самим, но это должно сработать:
foreach($html->find('.list ul li') as $li)
Если это все еще не работает, я бы print_r($html->find('.list ul il')
, чтобы увидеть, что это дает, и если это пустой массив, просто сокращайте селекторы, пока не найдете источник проблемы (т.е. print_r($html->find('.li ul')
, так далее)