2012-09-05 238 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

能否请您解释一下? –