Как получить тег привязки последнего li с помощью простого dom html в php

Я сканирую сеть с помощью простого dom в PHP.

Я получаю следующий html с помощью curl:

<ul><li>1</li><li>2</li><li>3</li><li><a href="http:abc.com">4</a></li></ul>

Теперь мне нужно href (ссылка) тега привязки, который находится в последнем li этого ul, с помощью простого объекта dom. Пожалуйста, предоставьте мне синтаксис, как я могу это сделать?

Я пробовал со следующим кодом, но не могу найти последнюю строку...

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);

person Community    schedule 29.05.2012    source источник
comment
Вы не оставили эту синтаксическую ошибку в коде, не так ли? $html = "<ul><li>1</li><li>2</li><li>3</li><li><a href="http:abc.com">4</a></li></ul>"; Посмотрите здесь stackoverflow.com/questions/10608595/apostrophe- php-проблема/   -  person Andrius Naruševičius    schedule 29.05.2012


Ответы (4)


Вы можете перебрать 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< /а>

person Sanjay    schedule 29.05.2012

Вы можете извлечь ссылку таким образом.

$ul = $oDocumentModel->find('ul',0);
$a = $ul -> lastChild() -> find('a'. 0);
$href = $a -> href;
person Starx    schedule 29.05.2012

Использовать XPath: //li[last()]/a/@href

person Eugene    schedule 06.06.2012

PHP отстой в DOM. При этом самый полезный плагин для анализа HTML, который я когда-либо находил, — это phpQuery: http://code.google.com/p/phpquery/

Я бы предложил использовать это вместо simple_html_dom.

person justnorris    schedule 29.05.2012