Я пытаюсь извлечь данные из html-документа.
<table style="border:0px none;margin:0px;padding:0px"><tr><td valign="middle"><p style="background-color:#EE0000;color:#fff;margin-right:5px;padding: 2px 3px;"><b>7767</b></p></td><td valign="middle"><h2 style="padding:1px">title 2</h2></td></tr></table>
есть неопределенное количество таблиц на странице, подобной этой, каждый раз, когда есть таблица, я хочу получить номер после стиля, здесь 7767, а предложение во втором, здесь название 2. Я нашел несколько примеров, которые я пробовал отрегулировать их, но он все еще не работает
$html = file_get_html('http://website.com/');
foreach($html->find('table') as $article) {
$item['nummer'] = $article->find('td.b', 0)->plaintext;
$item['title'] = $article->find('td.h2', 0)->plaintext;
$articles[] = $item;
}
.
для указания классов. Если вы хотите указать, что один элемент находится внутри другого, разделите их пробелом:
$item['nummer'] = $article->find('td b', 0)->plaintext;
$item['title'] = $article->find('td h2', 0)->plaintext;
Синтаксис для аргумента find
в основном так же, как CSS селекторы.
>
указать только прямые дочерние элементы ...
td.b
означает тегTD
сclass="b"
, аtd.h2
означает тегTD
сclass="h2"
. Почему вы указываете классы в своих селекторах, когда ваши данные не имеют этих классов?