使用XPATH删除<p> <strong> <br />&nbsp; </ strong> </ p>

lau*_*kok 6 php regex xpath domdocument

我使用xpath删除 <p>&nbsp;</p>

    $nodeList = $xpath->query("//p[text()=\"\xC2\xA0\"]"); # &nbsp;
    foreach($nodeList as $node) 
    {
        $node->parentNode->removeChild($node);
    }
Run Code Online (Sandbox Code Playgroud)

但它不会删除这个,

<p><strong><br /> &nbsp;</strong></p>
Run Code Online (Sandbox Code Playgroud)

或者这种

<p><strong>&nbsp;</strong></p>
Run Code Online (Sandbox Code Playgroud)

我该如何删除它们?

或者也许我应该使用正则表达式?

Gab*_*oli 6

试试吧

$nodeList = $xpath->query("//p[normalize-space(.)=\"\xC2\xA0\"]"); # &nbsp;
foreach($nodeList as $node) 
{
    $node->parentNode->removeChild($node);
}
Run Code Online (Sandbox Code Playgroud)

引用文档

normalize-space函数返回带有空格的参数字符串,该空格通过去除前导和尾随空格并用空格替换空白字符序列来规范化.