2

私は PHP と DOM および XML 解析の全世界に不慣れですが、ここでこれに出くわしました。子ノードを削除してから親ノードを呼び出すとhasChildNodes()、ゼロ以外の数値が返されます。ただし、 を に設定するpreserveWhiteSpaceFALSE、この問題は発生しません。だから私の質問は、空白と書式設定を維持しながらhasChildNodes()、呼び出し後に (子が 1 つだけであると仮定して) 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 に答える