我只想获取其中包含一些真实文本或子元素节点的元素(不是空格
等)。
我尝试了以下html:
<p> </p>
<div> </div>
到目前为止,我已经尝试过这段代码:
$dom = new DOMDocument;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$i = 0;
while (is_object($html_synch = $dom->getElementsByTagName("body")->item($i))) {
foreach ($html_synch->childNodes as $node) {
if ($node->nodeName != "script" && $node->nodeName != "style" &&
XML_COMMENT_NODE != $node->nodeType):
get_children($node);
endif;
}
$i++;
}
然后在 get_children 函数中,我使用此代码过滤空节点或节点
:
foreach ($node->childNodes as $child) :
if (trim($child->nodeValue) != ""):
echo $child->nodeValue; // it returns Â
echo $child->nodeName; // it returns #text
array_push($children_type, $child->nodeType);
endif;
endforeach;
print_r($children_type);
#text  and Array ( [0] => 3 )
它只返回<p> </p>
. 那么我该如何过滤它们呢?而且我知道#text 是文本的特殊节点名称。