Intereting Posts
Предлагаемое решение: создание уникальных идентификаторов в распределенной среде Как сделать ссылку, отправленную почтой и сделанную случайными токенами, доступ к их собственным данным на странице PHP Как использовать xgettext для разбора каталога? Как настроить cookie HttpOnly на PHP? Отфильтровать заказы с помощью WP_Query из массива идентификаторов заказов в WooCommerce Добавление задач в планировщик Windows с помощью PHP Импорт и обработка текстового файла в MySQL mysql update query для установки поля с идентификатором другой таблицы Можно ли расширить интерфейс WordPress XMLRPC от плагина? Раздражающие правила vim (un) получение почтового ящика через API facebook Удалить часть строки после определенного символа Извлечение данных из XML с использованием SimpleXML, третьего уровня ajax-вызов не работает при попытке отправить данные на localhost: 8000 из localhost dropzone.js загрузка изображений принятаMimeTypes

Получить текстовый узел с помощью простого HTML DOM Parser

Я совершенно новый для простого HTML DOM Parser . Я хочу получить дочерний элемент из следующего HTML:

<div class="article"> <div style="text-align:justify"> <img src="image.jpg" title="image"> <br> <br> "Text to grab" <div>......</div> <br></br> ................ ................ </div> </div> 

Я пытаюсь получить текст «Текст для захвата»

До сих пор я пробовал следующий запрос:

 $html->find('div[class=article] div')->children(3); 

Но это не работает. Любая идея, как это решить?

Если это всегда в одном месте, вы можете сделать:

 $html->find('.article text', 4); 

Здесь вам не нужен simple_html_dom . Это можно сделать с помощью DOMDocument и DOMXPath . Оба являются частью ядра PHP.

Пример:

 // your sample data $html = <<<EOF <div class="article"> <div style="text-align:justify"> <img src="image.jpg" title="image"> <br> <br> "Text to grab" <div>......</div> <br></br> ................ ................ </div> </div> EOF; // create a document from the above snippet // if you are loading from a remote url use: // $doc->load($url); $doc = new DOMDocument(); $doc->loadHTML($html); // initialize a XPath selector $selector = new DOMXPath($doc); // get the text node (also text elements in xml/html are nodes $query = '//div[@class="article"]/div/br[2]/following-sibling::text()[1]'; $textToGrab = $selector->query($query)->item(0); // remove newlines on start and end using trim() and output the text echo trim($textToGrab->nodeValue); 

Вывод:

 "Text to grab"