@bigrusssianshark

Как спарсить данные с определенны значением?

Здравствуйте!
Имеется веб страница на которой есть регулярно изменяемая таблица. В коде этой таблицы N-ное количество раз повторяется этот код
<tr>
			<td class="highlightable group">ГРУППА</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>

причем с разными значениями на месте слова "группа" и тд

Вопрос такой: как с помощью PHP без сторонних библиотек спарсить из таблицы указанный выше код с определенными значением на месте слова "группа" N-ное количество раз (то есть отсеить весь код, где на месте "группа" не подходящее значение)

Например, код на странице был
<tr>
			<td class="highlightable group">НЕ ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
		<tr>
			<td class="highlightable group">НЕ ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
		<tr>
			<td class="highlightable group">ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
		<tr>
			<td class="highlightable group">НЕ ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
		<tr>
			<td class="highlightable group">ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
		<tr>
			<td class="highlightable group">НЕ ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>


А на выходе было получено
<tr>
			<td class="highlightable group">ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
		<tr>
			<td class="highlightable group">ПОДХОДИТ</td>
			<td class="pnum highlightable">НОМЕР</td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ</p><p class="pteacher">ИМЯ<span class="pcab"></span></p></td>
			<td class="highlightable onepair"><p class="pname">ПРЕДМЕТ 2</p><p class="pteacher">ИМЯ 2<span class="pcab">НОМЕР 2</span></p></td>
		</tr>
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
DevMan
@DevMan
$dom = new DOMDocument;
$dom->loadXML($html);
 
$content = '';
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//td[.="ПОДХОДИТ"]/..') as $row) {
	$content .= $dom->saveXML($row) . PHP_EOL;
}
echo $content;
https://ideone.com/p3zvcJ
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
samodum
@samodum
Какой вопрос - такой и ответ
Регулярками легко парсится
https://regex101.com/r/3PSJ0u/1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы