Iv发现不可能将任何内容(文本或其他元素)写入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 :(得分: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();
答案 1 :(得分:0)
运行上面提供的完全相同的脚本,我得到以下结果:
<head id="head">lable</head><div>div</div>
由于您的代码甚至没有提及body
或html
元素,可能会对PHP代码生成的输出进行后期处理吗?