2013-07-24 3 views
2

HTML:PHP Simple HTML DOM Parser найти прямые LI элементы

<ul> 
<li><a></a> 
    <ul> 
    <li></li> 
    <li></li> 
    </ul> 
</li> 
<li> 
    ... 
</li> 
</ul> 

Для родителей ul:first-of-type, что бы селектор для его (прямого) ребенка li элементов для того, чтобы разобрать потомок li элементов по отдельности?

+0

@ Gordon: Я дона «Я действительно понимаю, почему этот вопрос был поставлен как не по теме. Понятно, чего я хочу достичь, даже получил ответ. –

+0

Он был закрыт, потому что он не продемонстрировал минимального понимания проблемы, которая была решена. ** В частности, вы не объясните, что вы пытались решить эту проблему, или почему документация по адресу http: //simplehtmldom.sourceforge .net/manual.htm не помогло. Мы ожидаем, что вы попробуете провести тщательное исследование. См. Http://stackoverflow.com/questions/ask-advice и http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist – Gordon

+0

Я прочитал документацию, но подумал, что есть другой способ для этого: что-то вроде «li not li li». Информация, которую я нашел, была ниже, но это было неполное решение, поскольку в ul были другие элементы, чем li, но ... поскольку это неверно html, я принял ответ ниже. –

ответ

2

В Jquery вы можете просто использовать этот селектор: ul > li

Обновление: -

Использование Simple DOM: -

<ul class="listitems"> 
<li><a></a> 
    <ul> 
    <li></li> 
    <li></li> 
    </ul> 
</li> 
<li> 
    ... 
</li> 
</ul> 

Простой HTML Dom код, чтобы получить только первый уровень Li товарные позиции:

$html = file_get_html($url); 
$first_level_items = $html->find('.listitems', 0)->children(); 

foreach ($first_level_items as $item) { 
    ... do stuff ... 
} 
+0

Обратите внимание, что SimpleHtmlDom не поддерживает '>'. См. Http://simplehtmldom.sourceforge.net/manual.htm – Gordon

+0

Я не читал заголовок должным образом. Я обновил код :) –

+0

Спасибо, кажется, работает. –

Смежные вопросы