@xaam

PHP Simple HTML DOM Parser как найти текст?

Как найти элемент по тексту между тегами? Например Employment type
Пробовал
$html->find([text()='Employment type'])
$html->find('Employment type')
Вставлял готовый xpath .//*[text()='Employment type'] по которому в Мозилле в FirePath находится.....
не получается(
  • Вопрос задан
  • 3459 просмотров
Решения вопроса 1
@xaam Автор вопроса
В итоге сделал так.
$a='';
  $j=0;
  while (strcmp('Employment type',$a)) {
   $j++;
   $a=$htm3->find('[@id=box-Details]/div[2]/div/div/dl/dt['.$j.']',0)->plaintext;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
muhammad_97
@muhammad_97
PHP-разработчик
https://github.com/imangazaliev/didom - ваш код должен работать:

use DiDom\Document;
...
$document = new Document($html);
$elements = $documents->xpath('//*[text()="foo"]');

var_dump($elements);
Ответ написан
glebovgin
@glebovgin
Full Stack Web Developer
Именно про PHP Simple HTML DOM Parser говорить не берусь, потому как не использую его, но про чистый xpath сказать могу вот что:

//*[text()[contains(normalize-space(.),"Employment type")]]


normalize-space() нужен для того, чтобы избежать проблем с пробелами. Именно это выражение у меня на чистом xpath сработало как надо.
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
все текстовые блоки
$es = $html->find('text');
а далее по ним foreach
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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