Extrait HTML n° 1
<div>
</div>
<div>
<h1>headline</h1>
</div>
Extrait HTML n° 2
<div></div>
<div><h1>headline</h1></div>
Code PHP
$doc = new DOMDocument();
$doc->loadHTML($x);
$xpath = new DOMXpath($doc);
$divs = $xpath->query("//div");
foreach ($divs as $div) echo $div->childNodes->length,"<br />";
Sortie avec $x =
extrait 1
1
3
Sortie avec $x =
extrait n°2
0
1
voir la démo de travail : http://codepad.viper-7.com/11BGge
Mes questions
1. Comment est-ce possible ?
2. Comment compter correctement les nœuds enfants avec DOM
?
EDIT :
comme l'a dit Silkfire, l'espace vide est considéré comme un nœud de texte. J'ai mis
$doc->preserveWhiteSpace = false;
mais les résultats sont toujours les mêmes : http://codepad.viper-7.com/bnG5io
Des idées ?