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
?
编辑:
正如 Silkfire 所说,空白空间被视为文本节点。我设置
$doc->preserveWhiteSpace = false;
但结果还是一样:http ://codepad.viper-7.com/bnG5io
有任何想法吗?