Удалить <p><strong> <br /> </strong></p> с XPATH - PullRequest
6 голосов
/ 22 октября 2011

Я использую xpath для удаления <p>&nbsp;</p>

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

, но это не удаляет это,

<p><strong><br /> &nbsp;</strong></p>

или этот тип,

<p><strong>&nbsp;</strong></p>

Какя могу удалить их?

Или, может быть, я должен использовать регулярное выражение?

1 Ответ

6 голосов
/ 22 октября 2011

Попробуйте с

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

Цитировать из документов

normalize-space функция возвращает строку аргумента с пробелами, нормализованными путем удаления начальных и конечных пробелов и замены последовательностей пробельных символов одним пробелом.

...