DOM文档字符错误

时间:2015-05-18 08:11:33

标签: php xml dom yii document

  

未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本进行渲染。必须在文档或传输协议中声明页面的字符编码。

dom像上面那样创建错误,当我在meta和data节点中创建新元素时页面返回空白:

ART

2 个答案:

答案 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>