Intereting Posts
Запрос базы данных через Hive / Thrift в PHP не работает Корзина WooCommerce – проверка категорий условных элементов Собственное приложение Phonegap, отправьте форму через почтовую программу PHP на реальном сервере Является ли сервер заголовка X-Requested-With достаточным для защиты от CSRF для приложения, управляемого ajax? $ _POST для отключенного выбора Ошибка AWS SDK – подпись еще не указана Zend Framework 2 – Перевести стандартную проверку формы и сообщения об ошибках Удалите автоматически добавленную <p> со страницы, которая не имеет литерального содержимого (использует короткие коды) Как перенаправить различные запросы поддонов на другой порт Имитировать файловую структуру с PHP Массив дерева подкатегорий категории трассировки PHP в пользовательский 2D-массив Amazon S3 избегает перезаписи объектов с тем же именем Можно ли использовать базы данных SQLite с PHP без функций sqlite? PHP-получение содержимого со страницы PHP: Получить адрес ссылки с перенаправленного URL

Запрос PHP DOMXPath с использованием innerHTML / nodeValue элемента для поиска и возврата элемента

Не могли бы вы помочь мне с правильным синтаксисом для использования, когда вы хотите проверить innerHTML / nodeValue элемента?

У меня нет проблем с именем, но возраст находится в пределах простого элемента div. Каков правильный синтаксис, используемый вместо «НЕ УВЕРЕН, ЧТО ПОЛОЖИТЬ ЗДЕСЬ» ниже.

$ html – это страница из Интернета

Имя человека находится в промежутке, таком как:

<span class="fullname">John Smith</span> 

Возраст людей находится в div как:

 <div>Age: 28</div> 

У меня есть следующий PHP:

 <?php $dom = new DomDocument(); @$dom->loadHTML($html); $finder = new DOMXPath($dom); //Full Name $findName = "fullname"; $queryName = $finder->query("//span[contains(@class, '$findName')]"); $name = $queryName->item(0)->nodeValue; //Age $findAge = "Age: "; $queryAge = $finder->query("//div[NOT SURE WHAT TO PUT HERE]"); $age = substr($queryAge->item(0)->nodeValue, 5); ?> 

Пытаться

 $queryAge = $finder->query("//div[starts-with(., '$findAge')]"); 

У меня был ограниченный успех с помощью starts-with() из-за пробелов, поэтому вам, возможно, придется прибегать к

 $queryAge = $finder->query("//div[contains(., '$findAge')]"); 

Если есть вероятность найти ложные срабатывания (т. Е. Другие div с «Age:» в них), вы можете избежать этого, используя более конкретный путь (если известен), т.е.

 $queryAge = $finder->query("//div[@id='something']//div[contains(., '$findAge')]");