如何在php中使用domxpath“strip_标记”

如何在php中使用domxpath“strip_标记”,php,html,strip-tags,domxpath,Php,Html,Strip Tags,Domxpath,我正在使用一个domxpath对象,希望以与strip_标记相同的方式删除标记。最后我想到了这个: function strip_node(&$node) { $node_list = array(); foreach ($node->childNodes as $child) { $node->parentNode->insertBefore($child->cloneNode(true),$node); }

我正在使用一个domxpath对象,希望以与strip_标记相同的方式删除标记。最后我想到了这个:

function strip_node(&$node)
{
    $node_list = array();
    foreach ($node->childNodes as $child)
    {
        $node->parentNode->insertBefore($child->cloneNode(true),$node);
    }
    $node->parentNode->removeChild($node);
}
但是,当我运行查询并尝试删除所有节点时,它失败了:

$matches = $xPath->query( "//div" );
foreach ($matches as $match)
{
    strip_node($match);
}
这显然是因为$matches是原始节点的列表,但当我去掉它们时,子节点被替换为新节点


那么,我可以做些什么来获得剥离标签的功能等价物呢?

如果您只想剥离所有标签,那么甚至不必为这项复杂的业务操心,只需使用innerText:$node->textContent是来自子节点的所有文本,并剥离标签。无论如何,您都不能删除节点上的\u标记。节点可以表示html/xml,但它不是一个简单的字符串,这正是strip_标记所期望的。