使用XPATH删除<p> <strong> <br/> </strong> </p>

时间:2011-10-21 23:39:09

标签: php regex xpath domdocument

我使用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 个答案:

答案 0 :(得分:6)

尝试

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

引用from the docs

  

normalize-space 函数返回参数字符串   通过剥离前导和尾随空格来规范化的空格   用单个空格替换空格字符序列。