2014-11-05 3 views
0
<ul> 
    <li> 
    <a>name1</a> 
    <div> 
     <ul> 
      <li> 
      <a>name</a> 
      <ul> 
       <li> 
        <a>name</a> 
       </li> 
       <li> 
        <a>name</a> 
       </li> 
      </ul> 
      </li> 
      <li> 
      <a>name</a> 
      <ul> 
       <li> 
        <a>name</a> 
       </li> 
       <li> 
        <a>name</a> 
       </li> 
      </ul> 
      </li> 
     </ul> 
    </div> 
    </li> 
    <li> 
    <a>name2</a> 
    <div> 
     <ul> 
      <li> 
      <a>name</a> 
      <ul> 
       <li> 
        <a>name</a> 
       </li> 
       <li> 
        <a>name</a> 
       </li> 
      </ul> 
      </li> 
      <li> 
      <a>name</a> 
      <ul> 
       <li> 
        <a>name</a> 
       </li> 
       <li> 
        <a>name</a> 
       </li> 
      </ul> 
      </li> 
     </ul> 
    </div> 
    </li> 
</ul> 

Как мы можем, у нас есть <ul>. Мы хотели бы использовать PHP Simple HTML DOM для получения массива с данными ul. Мы хотим, чтобы использовать код:Как сделать синтаксический анализ в некоторой строке?

foreach($html->find('li') as $li) { 

} 

Но в этом примере мы видим, все li на дисплее: http://prntscr.com/5390mf http://prntscr.com/5390pj

Но мы не знаем, как получить только parrent Ли:

1. 
    <li> 
    <a>name1</a> 
    </li> 
2. 
    <li> 
    <a>name2</a> 
    </li> 

И только чем получить детей ul в parrents li и все дети li в li.

Скажите, пожалуйста, как это сделать?

PS: если я плохо объясняю, что хотел бы получить, пожалуйста, напишите

ответ

0

Первое:

foreach($html->find('li',0) as $line) { 

} 

Второй (, если мы можем добавить класс к parrent ul):

foreach($html->find('ul.parrent_ul->li') as $line) { 

} 

Наслаждайтесь!

0
foreach($html->find('ul > li') as $li) { 

} 

Если получить только уровень литий волчка - один в том, что являются прямыми потомками ЛУ элементов

+0

Нет, вы можете видеть, что мы получаем некоторые 'ul-> li' в некотором' li', и используем ваш код, мы получаем все 'ul-> li' (не только parrent) –

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