在一个混合了<object>和<iframe>嵌入的网站上,我使用QueryPath来包装嵌入视频的<div>。
我尝试了以下代码:
$content = qp($content)
->find('object,iframe,a.evdPlayer')
->wrap('<div class="splashBack"></div>')
->top('body')->children()
->html(); // << It's wanting to remove the </iframe> Grrr.
return $content;但它似乎想要将我的<iframe></iframe>代码更改为<iframe />,这由于某种原因而搞砸了。有没有办法让它不改变它包装的标签?
提前感谢!
发布于 2012-04-26 08:56:16
当使用DOMDocument::saveXML时,->html方法不会设置LIBXML_NOEMPTYTAG标志,如果您需要结束标记,则应该使用传递此标志的->xhtml。例如
$content = qp($content)
->find('object,iframe,a.evdPlayer')
->wrap('<div class="splashBack"></div>')
->top('body')->children()
->xhtml();
return $content;发布于 2011-12-14 16:27:52
找到了一个似乎可行的解决方案。事实证明,通过在...querypath路径认识到结束标记的需要,不去管它。这是一个技巧,但它现在可以工作了!
$content = qp($content)
->find('object,iframe,a.evdPlayer')
->text('[ video embed ]')
->wrap('<div class="splashBack"></div>')
->top('body')->children()
->html(); // << It's wanting to remove the </iframe>
return $content;https://stackoverflow.com/questions/8496798
复制相似问题