从PHP简单HTML DOM中获取所有标题标签

3
我正在使用简单的html dom进行一些抓取操作,并想知道是否有一种方法可以一次获取所有H标签的集合 - 即H1 H2 H3等等...
类似于以下代码:
$HTags = $html->find("h*");

我需要知道确切的标签是哪一个 - <H1> <H2> 等等。任何帮助都将不胜感激。
2个回答

4
你可以这样做:
foreach($html->find('h1,h2,h3') as $element){

谢谢,我知道我可以这样做,但问题是要检查页面,我不知道是否有人使用了像<H54>这样的标签进行CSS处理。我看到类的发布说明中支持通配符,但我没有看到任何示例可以工作。 - Andrew Fielden

1
尝试使用 $xpath->query。
示例:
/* The following example finds <h1> and <h2> tags in a html String and sets id to it. The html-code will be printed.*/
$html = "<h2>test2</h2><h1>test1</h1><h3>test3</h3>";
$dom = new DOMDocument();
@$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXpath($dom);
$htags = $xpath->query('//h1 | //h2');
foreach($htags as $htag)
    $htag->setAttribute('id', 'test');

echo htmlentities($dom->saveHTML());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接