Проблема разбора/очистки с помощью simplehtmldom

Я пытаюсь использовать simplehtmldom для анализа веб-страницы со многими тегами li.

Я хотел бы извлечь внутренний текст только для определенного тега <li class='ev_td_li c5'>, который встречается в следующем фрагменте:

<li class='ev_td_li c5'>10:00  
    <a class="ev_link_row c3" href="/fr/quoi-faire-a-sutton/programme-activites-sutton/calendrier-hebdomadaire/icalrepeat.detail/2012/01/01/13918/-/NTNkZDVjNzNiNzE1YTBmM2VhZjMyZjljNmU0ODFiNjQ=.html"
        title="Marche du 2012">Marche du 2012</a>::  
    <a class="ev_link_cat c4" href="/fr/quoi-faire-a-sutton/programme-activites-sutton/calendrier-hebdomadaire/week.listevents/2012/01/02/122.html"
        title="Outdoor, Sporting Events ">Outdoor, Sporting Events</a>
</li>

Если я использую следующий код, я получаю все теги li:

foreach($html->find('li') as $e){
 echo $e->innertext . '<br>';

Но если я попытаюсь добавить класс, как показано ниже, я не получу никакого вывода:

foreach($html->find('li.ev_td_li c5') as $e){
    echo $e->innertext . '<br>';

Мне интересно, является ли проблема пробелом в «li.ev_td_li c5».

Кто-нибудь знает, что я делаю неправильно? Спасибо, Эллиот.


person Elliot    schedule 04.01.2012    source источник


Ответы (1)


Вместо этого попробуйте li.ev_td_li.c5 (обратите внимание на . перед c5). Если у вас есть 'li.ev_td_li c5 (обратите внимание на пробел), это интерпретируется как "тег <li> класса ev_td_li, за которым следует тег <c5>".

person Marc B    schedule 04.01.2012
comment
Я попробовал foreach($html->find('li.ev_td_li.c5') as $e) и все еще не получаю никакого результата :-( - person Elliot; 05.01.2012
comment
simplehtml может не поддерживать несколько селекторов в одном теге. Возможно, вам придется перейти на использование полной настройки DOM. - person Marc B; 05.01.2012
comment
Только что попробовал: foreach($html->find('li.ev_td_li') as $e), и это дает приемлемый результат. Я не видел никаких ссылок на это в [simplehtmldom.sourceforge.net/manual.htm] . Есть ли другая документация, описывающая такое поведение? - person Elliot; 06.01.2012