2011-01-27 86 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