2012-09-05 270 views
2

我是新來的PHP和整個世界的DOM和XML解析,但在這裏我偶然發現了這一個。如果刪除一個子節點,然後在父節點上調用hasChildNodes(),它將返回一個非零數字。但是,如果我們將preserveWhiteSpace設置爲FALSE,則不會出現此問題。所以我的問題是我們如何讓hasChildNodes()在調用removeChild(假設只有一個孩子)之後返回0,同時保留空格和格式?PHP,DOM,XML解析

回答

0

你不能真的,你必須走子節點,並篩選出你不關心的(本例中是文本節點)。

在僞代碼:

children = node->getChildren(); 

array_filter(children, function (element) { 
    return element->isTextNode() && empty(trim(element->getText())); 
}); 
+0

能否請您解釋一下? –