【发布时间】:2017-07-11 12:03:19
【问题描述】:
我的代码是这样的
$xml = new \DOMDocument();
.
.
.
$VAST_Impression ="some_url"
$xml_Impression = $xml->Impression= htmlspecialchars($VAST_Impression);
$xml_InLine->appendChild($xml_Impression);
我收到这样的错误:
PHP 可恢复错误 – yii\base\ErrorException
传递给 DOMNode::appendChild() 的参数 1 必须是 DOMNode 的实例,给定字符串
【问题讨论】:
-
这是什么意思?我是新手请帮忙
-
这意味着appendChild的第一个参数需要是DOMNode的一个实例,但是你传入了一个字符串。 IE。
$xml_Impression是字符串,但必须是 DOMNode 的实例。 -
这是否意味着我应该使用 createElement() 而不是 htmlspecialchars()?因为如果我使用 createElement 我不能在 url 中使用 '&' 这就是为什么我改为 htmlspecialchars()....无论如何?
-
createElement会给你一个DOMElement,它是DOMNode的扩展,所以是的。您仍然可以对传入节点的内容进行编码。 -
您仍然需要编码,只需将其返回到
createElement。 IE。createElement(htmlspecialchars($string))