试着走向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>";
}
}
}
}
}