简单的HTML DOM解析器不更新

时间:2012-01-19 13:28:36

标签: php simple-html-dom domparser

我正在为我自己的模板系统使用简单的HTML DOM解析器,并发现了一个问题。

这是我的标记:

<div class=content>
    <div class=navigation></div>
</div>

我用自己的内容替换div.navigation,如:

$navi= $dom->find("div.navigation",0);
$navi->outertext = "<a class=aNavi>click me!</a>";

很好地工作 - 我可以回应它但问题是 - 在回显之前我仍然想要使用解析器访问/操作该链接,但解析器将找不到它。

$link = $dom->find("a.aNavi");

将返回null:(

似乎在更改outertext之后需要刷新/更新解析器 - 任何想法是否可能?

1 个答案:

答案 0 :(得分:2)

我在the API reference中没有看到任何类似createElement的方法,这意味着文档不完整或者您使用了错误的工具。

我建议使用DOMDocumentDOMDocument::createElement()方法。但是,如果你已经开始使用Simple HTML DOM Parser了,你可以试试这个hack:

$navi = $dom->find('div.navigation', 0);
$navi->outertext = '<a class="aNavi">click me!</a>';
$dom = $dom->save();
$dom = str_get_html($dom);
$link = $dom->find('a.aNavi');