2

私は単純な html dom を使用してスクレイピングを行っていますが、1 回のヒットですべての H タグのコレクションを取得する方法があるかどうかを知りたいです。つまり、H1 H2 H3 などです...

の順序の何か

$HTags = $html->find("h*");

次に、それがどのタグであったかを正確に知る必要もあります-<H1> <H2>など..

どんな助けでも大歓迎

4

2 に答える 2

4

あなたは次のようなことができます

foreach($html->find('h1,h2,h3') as $element){
于 2012-05-22T11:28:04.730 に答える
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());
于 2021-05-31T20:34:24.500 に答える