未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本进行渲染。必须在文档或传输协议中声明页面的字符编码。
dom像上面那样创建错误,当我在meta和data节点中创建新元素时页面返回空白:
ART
答案 0 :(得分:0)
错误在这一行:
$ data = $ dom-> createElement(' data'); $ data = $ instance-> appendChild($ data);
$ meta = $ dom-> createElement(' meta'); $ meta = $ data-> appendChild($ meta);
答案 1 :(得分:0)
您不输出XML,而是输出带有转义XML的HTML。
<pre>some escaped xml</pre>
如果将此输出视为XML,则此输出与错误消息匹配。这里没有带编码的XML声明。
根据DOM方法,您的源输出XML文档:https://eval.in/private/1507ef8a4065d0。
但是,我建议对所有命名空间节点使用createElementNS()。像$dom->createElement('h:h');
这样的通话含糊不清。
$xmlns = [ 'h' => 'http://www.w3.org/1999/xhtml' ];
$dom = new DOMDocument();
$html = $dom->appendChild(
$dom->createElementNS($xmlns['h'], 'h:html')
);
$head = $html->appendChild($dom->createElementNS($xmlns['h'], 'h:head'));
echo $dom->saveXml();
输出:
<?xml version="1.0"?>
<h:html xmlns:h="http://www.w3.org/1999/xhtml"><h:head/></h:html>