Получение текста между двумя пролетами с помощью «Простого HTML DOM» - PullRequest
3 голосов
/ 02 августа 2011

По сути, мне нужно получить текст между двумя тегами span, и я пробовал несколько разных методов без решения. Я использую Simple HTML DOM Parser (http://simplehtmldom.sourceforge.net/) тоже), так что я могу немного ограничиться. Вот базовая настройка:

<span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span>

Любая помощь?

Ответы [ 3 ]

4 голосов
/ 02 августа 2011

Текст между элементами span должен быть DOMTextNode и соответствовать элементам span. Если SimpleHTMLDom следует спецификации DOM , вы сможете получить его с помощью:

$text = $html->find('span[class=1]', 0)->next_sibling();

Если это не сработает, рассмотрите возможность использования более подходящего синтаксического анализатора, основанного на libxml, например см

0 голосов
/ 15 сентября 2014

поиск ('текст', $ индекс)

Это даст вам блоки текста.

Попробуйте это:

echo $html->find('text',1);

выход: * +1010 *

TEXT I NEED TO GET

DEMO

0 голосов
/ 02 августа 2011

Попробуйте PHP Dom :

$dom = new DomDocument;
$dom->loadHtml('
    <span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span>
');

$xpath = new DomXpath($dom);
foreach ($xpath->query('//body/text()') as $textNode) {
    echo $textNode->nodeValue; // will be: ' TEXT I NEED TO GET '
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...