Получение текста между двумя пролетами с помощью «Simple HTML DOM»

В принципе, мне нужно получить текст между двумя тегами 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> 

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

Solutions Collecting From Web of "Получение текста между двумя пролетами с помощью «Simple HTML DOM»"

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

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

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

  • Как вы анализируете и обрабатываете HTML / XML в PHP?

Попробуйте 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 ' } 

find ('text', $ index)

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

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

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

вывод:

 TEXT I NEED TO GET 

DEMO