我正在使用QueryPath在包含<div>
和<object>
嵌入混合的网站上围绕嵌入视频打包<iframe>
。
我尝试了以下代码:
$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 />
,因为某种原因导致问题变得混乱。有没有办法阻止它改变它包装的标签?
提前致谢!
答案 0 :(得分:4)
- &gt; html方法在使用DOMDocument :: saveXML时不设置LIBXML_NOEMPTYTAG标志,如果您需要使用结束标记 - &gt; xhtml而不是传递此标志。例如
$content = qp($content)
->find('object,iframe,a.evdPlayer')
->wrap('<div class="splashBack"></div>')
->top('body')->children()
->xhtml();
return $content;
答案 1 :(得分:2)
找到似乎有效的解决方案。事实证明,通过在...之间插入一些内容,querphath可以识别出对结束标记的需要并将其单独留下。这是一个黑客,但它现在有效!
$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;