DomCrawler 2-й и т. Д. Ребенок - PullRequest
       32

DomCrawler 2-й и т. Д. Ребенок

0 голосов
/ 12 декабря 2018

Я переделываю свои парсеры из SimpleHTMLDom на DomCrawler и в некоторых пунктах (как для меня) не охватываю все вопросы, которые могут быть от новичков.В СХД я написал так для доступа ко второму потомку:

$value = $dom->find('.t18',0);
$result = $value->find('b',1);

, но в DomCrawler я не могу найти аналогичного способа выбора именно второго потомка элемента с классом t18.Как я могу это сделать?

пример кода, из которого я пытаюсь получить данные:

<div class="t18">
  <b>20(PLN)</b>
  <b>4.66 (EUR)</b>
<br>
  <b>20(EUR)</b>
  <b>85.87(PLN)</b>
<br>
</div>

1 Ответ

0 голосов
/ 29 декабря 2018

Вы можете использовать функцию "eq", чтобы выбрать n-й дочерний узел.

для вашего примера, чтобы выбрать второй элемент b внутри первого элемента .t18:

echo $domCrawler->filter(".t18")->eq(0)->filter("b")->eq(1)->text(); // will echo 4.66 (EUR)

...