我正在为我自己的模板系统使用简单的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之后需要刷新/更新解析器 - 任何想法是否可能?
答案 0 :(得分:2)
我在the API reference中没有看到任何类似createElement
的方法,这意味着文档不完整或者您使用了错误的工具。
我建议使用DOMDocument和DOMDocument::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');