PHP步行html Dom;问题是重复结果

时间:2015-08-29 23:27:58

标签: php dom

试着走向dom的div并在我走的时候缩进它。它有效,除了有重复。我可以保存到一个数组并检查重复,但想知道是否有一个更简单的方法。感谢。

function dom_parse_div_tag($htmlfile)
{
 libxml_use_internal_errors(true); // supresses dom warnings
 $dom = new DOMDocument();
 $dom->preserveWhiteSpace = false;
 $dom->loadHTML($htmlfile);
 $nodes = $dom->getElementsByTagName("div");
 foreach ($nodes as $ii=>$node) {
     echo "<br>";
     $nodeclass = $node->attributes->getNamedItem('class');
     if (isset($nodeclass))
         echo "Class:" . $nodeclass->nodeValue ."<br>";
     dom_child_node_print($node,0);
 }
}

function dom_child_node_print($node,$level)
{
 echo "<br>";
 if($node->hasChildNodes()) {
    $nclass = $node->attributes->getNamedItem('class');
    if (isset($nclass))
        echobr("Class:" . $nclass->nodeValue);
    foreach ($node->childNodes as $ochildnode) {
        if($ochildnode->hasChildNodes()) {
            dom_child_node_print($ochildnode, $level + 1);
        }
        else {
            if (trim($ochildnode->nodeValue) !== "") {
                echo "Level$level," . strg_remove_linefeed($ochildnode->nodeValue) ."<br>";
            }
        }
    }
}
}

0 个答案:

没有答案