PHP preg_match_all - группа без возврата совпадения - PullRequest
0 голосов
/ 23 марта 2012

Как бы я мог получить контент из HTML между тегами h3 внутри элемента с классом pricebox?Например, следующий фрагмент строки

<!-- snip a lot of other html content -->
<div class="pricebox">
    <div class="misc_info">Some misc info</div>
    <h3>599.99</h3>
</div>
<!-- snip a lot of other html content -->

Улов 599,99 должен быть первым возвращенным соответствием, то есть, если вызов функции

preg_match_all($regex,$string,$matches)

, 599,99 должен быть в$ match [0] [1] (потому что я использую один и тот же сценарий для получения чисел из разнородных строк с разным $ regex - сценарий ищет первое совпадение).

1 Ответ

1 голос
/ 23 марта 2012

Попробуйте использовать XPath ;безусловно НЕ RegEx .

Код:

$html = new DOMDocument();
@$html->loadHtmlFile('http://www.path.to/your_html_file_html');

$xpath = new DOMXPath( $html );
$nodes = $xpath->query("//div[@class='pricebox']/h3");

foreach ($nodes as $node)
{
    echo $node->nodeValue."";
}
...