我使用以下方法来获得一个html文件到DOM:PHP DOM - 访问新增节点
$dom = new domDocument('1.0', 'utf-8');
$dom->loadHTML($html)
然后我加入一些新的内容元素在html:
$element = $dom->getElementById('mybox');
$f = $dom->createDocumentFragment();
$f->appendXML('<div id="newbox">foo</div>');
$element->appendChild($f);
但是如果我现在想要操纵#newbox,我无法做到这一点,因为我无法通过getElementById()
访问它。为了做到这一点我必须做以下(与新的HTML重装):
$html = $dom->saveHTML();
$dom->loadHTML($html)
,工作正常,但不必每个DOM操作之间做到这一点的时候,就变成昂贵的性能代价。
有没有更好的方法来“刷新”DOM,使其与新添加的元素一起工作?
在此先感谢! :)
我很好奇将提供什么答案;我想......必须有一个合适的方法来做到这一点,但现在无法想到任何事情。问题中的细节:$ dom变量在dom-> getElementBYId('mybox')中缺少其美元前缀;声明。 – kander 2009-11-14 03:02:07