app*_*tix 4 css php appendchild domdocument createelement
我想创建一组<style>标签并将其添加到HTML文档的head标签中.
我知道我可以这样开头:
$url_contents = file_get_contents('http://example.com');
$dom = new DOMDocument;
$dom->loadHTML($url_contents);
$new_elm = $dom->createElement('style', 'css goes here');
$elm_type_attr = $dom->createAttribute('type');
$elm_type_attr->value = 'text/css';
$new_elm->appendChild($elm_type_attr);
Run Code Online (Sandbox Code Playgroud)
现在,我也知道我可以像这样在HTML中添加新的样式标记:
$dom->appendChild($ss_elm);
$dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)
但是,这将创建以下方案:
<html>
<!--Lots of HTML here-->
</html><style type="text/css">css goes here</style>
Run Code Online (Sandbox Code Playgroud)
以上基本上没有意义; CSS没有解析,只是坐在那里.
我在网上找到了这个解决方案(显然没有用):
$head = $dom->getElementsByTagName('head');
$head->appendChild($new_elm);
$dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!!
可能吗?
小智 5
$head = $dom->getElementsByTagName('head');
Run Code Online (Sandbox Code Playgroud)
返回DOMNodeList.我认为得到像这样的第一个元素会更好
$head = $dom->getElementsByTagName('head')->item(0);
Run Code Online (Sandbox Code Playgroud)
所以$ head将是一个DOMNode对象.所以你可以使用appendChild方法.
getElementsByTagName 返回一个节点数组,所以可能会尝试
$head->[0]->appendChild($new_elm);
Run Code Online (Sandbox Code Playgroud)