我正在尝试从dom中删除某些元素。在过程是获取元素的许多地方是well documented,然后设置outertext = ""
。有点像...
foreach ($html->find($selector) as $node)
{
$node->outertext = '';
}
然后重新加载dom ......
$html->load($html->save());
但是,当我运行此操作以删除所有link
元素...
$html = file_get_html($url);
foreach ($html->find($nodeName) as $node) {
$node->outertext = '';
}
$html->load($html->save());
结果是所有link
元素都只丢失了开始标记,但是竞争和结束标记仍然存在......
<link>http://www.somelink.com</link>
// becomes...
http://www.somelink.com</link>
如果我打印出outertext
(在测试用例中),它只会返回开始标记...
echo $html->find('link')->outertext;
// returns "<link>"
它适用于自动关闭标签(即<link src="http://www.somelink.com" />
),但那是因为没有要处理的内容或结束标记。
我找不到任何其他人遇到此问题的情况,所以我不确定发生了什么。