这是我的代码:
我想获取 HTML 文档中文本节点的总数。
// a new dom object
$dom = new domDocument;
// load the html into the object
$dom->loadHTMLFile('translated/test.html');
// discard white space
$dom->preserveWhiteSpace = false;
$i = 0;
// get elements by tagname body
while ($bodynodes = $dom->getElementsByTagName('body')->item($i)) {
myFunc($bodynodes);
$i++;
}
//var_dump($holder);
function myFunc($node) {
static $i;
if (!isset($i)) {
$i = 0;
}
if ($node->childNodes) {
foreach ($node->childNodes as $subNode):
myFunc($subNode);
endforeach;
}else {
if ($node->nodeType == 3 && trim($node->nodeValue) != ''):
$i++;
endif;
}
if ($node->lastChild):
echo $i;
endif;
}
但我得到的是
Result ====> 1233
因为我的 HTML 文档中只有 3 个文本段。