0

我正在为我自己的模板系统使用简单的 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 :(

似乎在更改外部文本后需要刷新/更新解析器 - 如果可能的话有什么想法吗?

4

1 回答 1

2

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

我建议使用DOMDocumentDOMDocument::createElement()方法。但是,如果您对使用 Simple HTML DOM Parser 不以为然,您可以尝试以下技巧:

$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');
于 2012-01-19T14:17:08.583 回答