2011-01-27 3 views
0

Я пытаюсь добавить тег <style> в существующий тег <head>. Кажется, я не могу понять, как это сделать по какой-то причине; это то, что я придумал до сих пор (кстати, существующий <head> тег пуст):в PHP, как добавить тег в существующую?

$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')' будет значительно (~ 3x) быстрее, чем использование XPath. – lonesomeday

ответ

2

$headnode является DOMNodeList объект, который не может быть использован как массив. Вместо этого:

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

Вы можете использовать var_dump($headnode), чтобы увидеть его тип.

+0

спасибо, что сработало! –

Смежные вопросы