#php
Вопрос:
У меня есть такой стол
lt;tablegt; lt;trgt;lt;thgt;testlt;/thgt;lt;tdgt;mydatalt;/tdgt;lt;/trgt; lt;trgt;lt;thgt;test2lt;/thgt;lt;tdgt;mydata2lt;/tdgt;lt;/trgt; lt;/tablegt;
Теперь я хочу узнать td
, где th = test2
$html = str_get_html('table.html)' $table = $html-gt;find('table',0); $table-gt;find('td[where th src = test2')-gt;src # like this
Наконец, я хочу понять test2
, как я могу это сделать?
Спасибо за вашу помощь.
Ответ №1:
Я не думаю, что существует прямой способ найти элемент на основе текстового содержимого(в простом синтаксическом анализаторе PHP HTML DOM).
Вы можете найти th с текстом, пройдя по всем th
s, найдя тот, с текстом, а затем получив следующего брата или сестру.
$html = str_get_html('table.html') $table = $html-gt;find('table',0); $ths = $table-gt;find('th'); $th = null; foreach ($ths as $th){ if ($th-gt;plaintext = 'test2'){ $td = $th-gt;next_sibling(); break; } }
Комментарии:
1. next_sibling () — это то, что я хочу. Это довольно полезная функция, большое вам спасибо.