我正在使用PHP中的简单dom抓取网页。
我正在使用帮助curl跟踪html:
<ul><li>1</li><li>2</li><li>3</li><li><a href="http:abc.com">4</a></li></ul>
现在,我需要在简单的dom对象的帮助下href(链接)这个ul的最后一个li中的锚标记。请提供语法我该怎么做?
我尝试使用以下代码,但我无法找到最后一个...
require_once 'simple_html_dom.php';
$html = "<ul><li>1</li><li>2</li><li>3</li><li><a href="http:abc.com">4</a></li></ul>";
$oDocumentModel = new simple_html_dom();
$oDocumentModel->load($html);
$ul = $oDocumentModel->find('ul',0);
答案 0 :(得分:2)
你可以循环遍历li并将其转换为数组并找到最后一个元素。如果你有一套较小的李... ...
require_once 'simple_html_dom.php';
$html = "<ul><li>1</li><li>2</li><li>3</li><li><a href='http:abc.com'>4</a></li></ul>";
$oDocumentModel = new simple_html_dom();
$oDocumentModel->load($html);
$ul = $oDocumentModel->find('ul',0);
$items = array();
foreach( $ul->find('li') as $li ){
$items[] = $li->plaintext;
}
$last = end($items);
print_r($last);
或者你可以使用lastChild()来浏览http://simplehtmldom.sourceforge.net/manual_api.htm
答案 1 :(得分:2)
您可以通过这种方式提取链接。
$ul = $oDocumentModel->find('ul',0);
$a = $ul -> lastChild() -> find('a'. 0);
$href = $a -> href;
答案 2 :(得分:0)
使用XPath://li[last()]/a/@href
答案 3 :(得分:-1)
PHP很糟糕。 话虽这么说,我发现解析HTML最有用的插件是phpQuery:http://code.google.com/p/phpquery/
我建议使用它而不是simple_html_dom。