HTML スニペット #1
<div>
</div>
<div>
<h1>headline</h1>
</div>
HTML スニペット #2
<div></div>
<div><h1>headline</h1></div>
PHP コード
$doc = new DOMDocument();
$doc->loadHTML($x);
$xpath = new DOMXpath($doc);
$divs = $xpath->query("//div");
foreach ($divs as $div) echo $div->childNodes->length,"<br />";
スニペット付きの出力$x =
#1
1
3
$x =
スニペット #2
0
1 を含む出力
実際のデモを参照してください: http://codepad.viper-7.com/11BGge
私の質問
1. これはどうしてですか?
2. で子ノードを正しくカウントするにはDOM
?
EDIT:
Silkfireが言ったように、空のスペースはテキストノードと見なされます。設定しました
$doc->preserveWhiteSpace = false;
しかし、結果は同じです: http://codepad.viper-7.com/bnG5io
何か案は?