我有以下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模块。
答案 0 :(得分:1)
为什么不搜索div[class=list] ul li
,而不是找.list li
的?简单HTML DOM的Documentation非常缺乏,所以你需要自己付钱,但这应该有效:
foreach($html->find('.list ul li') as $li)
如果仍然不起作用,我print_r($html->find('.list ul il')
,看看它产生了什么,如果这是一个空数组,只需切断选择器,直到找到问题的根源(即print_r($html->find('.li ul')
等)
答案 1 :(得分:0)
<?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 />";
}
?>