Parser une page HTML : Regex ou DOMDocument()
Bonjour
J'essaie de parser une page html qui est construite comme ceci
Code:
1 2 3 4 5 6 7 8 9
| ...
<section class="ui grid topbar">
<div class="ui row">
... des divs etc
</div>
</section>
... |
Pour cela j'essaie avec la regex qui selon moi veut dire de sélectionner n'importe quel caractère en n importe quelle quantité entre les deux balises section:
Code:
1 2 3 4 5
| $strResult = implode("", file("test_1.php"));
$pattern = '#<section(.*)<\/section>#';
preg_match_all($pattern, $strResult, $n);
echo '<pre>';
var_dump($n); |
le resultat est vide :
Citation:
array(2) {
[0]=>
array(0) {
}
[1]=>
array(0) {
}
}
J'essaie alors avec DOMDocument() avec ce code qui selon moi devrait extraire des blocs de code délimités par le tag 'section'
Code:
1 2 3 4 5
| $doc = new DOMDocument();
$doc->loadHTMLFile("test_1.php");
$elements = $doc->getElementsByTagName('section');
echo '<pre>';
var_dump($elements); |
mais là aussi le résultat est vide :
Citation:
bject(DOMNodeList)#2 (1) {
["length"]=>
int(0)
}
Question : Comment dois-je donc procéder pour parser une page HTML et en extraire le code entre les balises section ? L un est elle préférable à l 'autre et quelle sont donc mes erreurs pour obtenir un résultat vide ?
Merci pour votre aide.