2

我是 PHP 新手以及 DOM 和 XML 解析的整个世界,但在这里我偶然发现了这个。如果删除一个子节点然后调用hasChildNodes()父节点,它将返回一个非零数。但是,如果我们将 设置preserveWhiteSpaceFALSE,则不会出现此问题。所以我的问题是我们如何hasChildNodes()在调用后返回 0 removeChild(假设只有一个孩子),同时保留空格和格式?

4

1 回答 1

0

你真的不能,你必须遍历子节点并过滤掉你不关心的那些(在这种情况下是文本节点)。

在伪代码中:

children = node->getChildren();

array_filter(children, function (element) {
    return element->isTextNode() && empty(trim(element->getText()));
});
于 2012-09-05T05:51:59.783 回答