2014-09-21 2 views
0

Вот то, что я через DOM (я удалил содержимое):CURL: Получить элементы по имени класса

<ul class="toggle-block"> 
     <li> 
      <h4 class="chip ui-header rounded-5 act-select toggle-active" ></h4> 
      <div class="inner rounded-5 act-block"> 
       <div class="inlineBlock"></div> 
       <div class="inlineBlock"></div> 
       <div></div> 
       <h5></h5> 
       <div class="inlineBlock"></div> 
       <div class="inlineBlock"></div> 
      </div> 
     </li> 
    </ul> 

Мне нужно, чтобы каждый контент, расположенный в каждом ДИВОЙ и h5 из act-блок главный div.

Я начал с этим кодом:

$xpath = new DOMXPath($dom); 
$els = $xpath->query('//ul[@class="toggle-block"]/li/div'); 

Но теперь я не знаю, что делать. Есть идеи ?

EDIT 1:

Я сделал тест с этим, и это работает для первого узла ...

$xpath = new DOMXPath($dom); 
$actblock = $xpath->query("//div[contains(concat(' ',normalize-space(@class),' '),' act-block ')]"); 
$els = $xpath->query('./div | ./h5', $actblock->item(0)); 
$el = $els->item(0)->nodeValue; 
echo $el; 

... но это не работает для следующих из них:

$xpath = new DOMXPath($dom); 
$actblock = $xpath->query("//div[contains(concat(' ',normalize-space(@class),' '),' act-block ')]"); 
$els = $xpath->query('./div | ./h5', $actblock->item(0)); 
$el = $els->item(1)->nodeValue; 
echo $el; 

ответ

0

Этот запрос должен работать:

$actblock = $xpath->query("//div[contains(concat(' ',normalize-space(@class),' '),' act-block ')]"); 
$els = $xpath->query('./div | ./h5', $actblock->item(0)); 

http://pivotallabs.com/xpath-css-class-matching/, Xpath select multiple tags

+0

Я пробовал решение. Для первого узла это нормально, но не следующие. Я редактировал свой пост. –

+0

@SergentPepper Что значит «для первого узла это нормально»? В моем примере я предполагаю, что есть только один div с классом 'act-block', это неправильно? – idmean

+0

Да, есть только один блок действий. О узлах я имел в виду каждый div/h5 внутри act-block: $ els-> item (0) -> nodeValue, $ els-> item (1) -> nodeValue, $ els-> item (2) -> nodeValue, и т.д. –

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