PHP preg_match_all - 没有返回匹配的组

时间:2012-03-23 00:33:00

标签: php html regex html-parsing

如何从具有类价格盒的元素中的h3标签之间获取HTML内容?例如,以下字符串片段

<!-- 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 -->

catch是599.99必须是返回的第一个匹配,即函数调用是

preg_match_all($regex,$string,$matches)

599.99必须在$ matches [0] [1]中(因为我使用相同的脚本从不同的$ regex获取不同的字符串中的数字 - 脚本查找第一个匹配项。)

1 个答案:

答案 0 :(得分:1)

尝试使用XPath;肯定是 NOT 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."";
}