PHP,简单的HTML DOM - `outertext`只返回开始标记

时间:2016-08-16 18:57:47

标签: php simple-html-dom

使用PHP Simple HTML DOM Parser

我正在尝试从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" />),但那是因为没有要处理的内容或结束标记。

我找不到任何其他人遇到此问题的情况,所以我不确定发生了什么。

0 个答案:

没有答案