2011-01-27 85 views
0

我试图在现有的<head>标记中添加<style>标记。由于某种原因,我似乎无法弄清楚如何做到这一点;这是我想出迄今(顺便说一下,现有<head>标记为空):,如何在现有的标签中添加标签?

$dom = new DOMDocument; 
$dom->loadHTML($htmlfile_data); 
$xpath = new DOMXPath($dom); 
$headnode = $xpath->query('//head'); // i assume this is an array? 
$stylenode = $dom->createElement('style'); 
$headnode[0]->appendChild($stylenode); 

$htmlfile_data = $dom->saveHTML(); 

基本上我想要的输出是:

前:

<head></head> 

后:

<head><style></style></head> 
+2

请注意,`$ dom-> getElementsByTagName('head')`会比使用XPath快(〜3倍)。 – lonesomeday 2011-01-27 22:48:06

回答

2

$headnodeDOMNodeList对象,它不能用像一个数组。相反,这样做:

$headnode->item(0)->appendChild($node); 

您可以使用var_dump($headnode)看到它的类型。

+0

谢谢你的工作! – 2011-01-27 22:45:23