2012-02-12 51 views
0

㈣發現,這是不可能寫入任何內容(文字或另一個元件)插入頭元件,例如XMLWriter的不能寫入<head>元件

$XML = new XMLWriter(); 
$XML->openMemory(); 
$XML->startElement("head"); 
$XML->writeAttribute("id","head"); 
$XML->text("lable"); 
$XML->endElement(); 
$XML->startElement("div"); 
$XML->text("div"); 
$XML->endElement(); 
echo $XML->outputMemory(); 

在體內將輸出元件,而不是在頭部,但它使正確的屬性:

<html> 
<head id="head"> 
</head> 
<body> 
lable 
<div> 
div 
</div> 
</body> 
</html> 

爲什麼我不能寫任何內容到頭?

+0

感謝編輯 – user1112984 2012-02-12 16:02:11

+0

無法重現:http://codepad.viper-7.com/sXU8Ci – Gordon 2012-02-12 16:09:48

回答

1

HTML不支持其<head>中的文本或與內容相關的元素。從W3C recommendation

HEAD元素包含有關當前文檔的信息,如它的標題,這可能是有用的搜索引擎關鍵字,並沒有考慮文檔內容的其他數據。

通常情況下,你會想要寫HTML頭的主要內容是<title>元素和任何<meta>元素。我推測,以下將工作:

$XML = new XMLWriter(); 
$XML->openMemory(); 
$XML->startElement("head"); 
$XML->writeAttribute("id","head"); 
$XML->startElement("title"); 
$XML->text("My HTML page"); 
$XML->endElement(); 
$XML->endElement(); 
$XML->startElement("div"); 
$XML->text("div"); 
$XML->endElement(); 
echo $XML->outputMemory(); 
0

運行你上面提供的完全一樣的劇本,我得到以下結果:

<head id="head">lable</head><div>div</div> 

因爲你的代碼甚至沒有提到一個bodyhtml元素,也許有什麼後處理您的PHP代碼生成的輸出?

+0

謝謝!我發現我的錯誤 – user1112984 2012-02-12 16:14:25

+1

,那麼請留下評論,說明你的錯誤是什麼,以便其他人可以從中學習;)如果你發現我的答案有用,你可以放棄它或將其標記爲正確。 – 2012-02-12 16:20:31