Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误:传递给DOMNode::appendChild()的参数1必须是给定字符串的DOMNode实例_Php_Dom_Yii2 - Fatal编程技术网

Php 错误:传递给DOMNode::appendChild()的参数1必须是给定字符串的DOMNode实例

Php 错误:传递给DOMNode::appendChild()的参数1必须是给定字符串的DOMNode实例,php,dom,yii2,Php,Dom,Yii2,我的代码如下所示 $xml = new \DOMDocument(); . . . $VAST_Impression ="some_url" $xml_Impression = $xml->Impression= htmlspecialchars($VAST_Impression); $xml_InLine->appendChild($xml_Impression); 我得到的错误如下: PHP可恢复

我的代码如下所示

     $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的实例,字符串为


你能以错误的方式访问该方法吗

$xml_Impression = $xml->Impression->htmlspecialchars($VAST_Impression);
或者你使用了错误的方法

$xml_Impression = $xml->Impression->createElement($VAST_Impression);
例如:


这是什么意思?im新手请帮忙这意味着appendChild的第一个参数需要是DOMNode的一个实例,但您已经传入了一个字符串。例如,
$xml\u Impression
是一个字符串,但它必须是DOMNode的实例。这是否意味着我应该使用createElement()而不是htmlspecialchars()?因为如果我使用createElement,我就不能在url中使用“&”,这就是为什么我改为htmlspecialchars()…无论如何,
createElement
会给你一个
DomeElement
,它是
DOMNode
的扩展,所以是的。您仍然可以对传递到节点的内容进行编码。您仍然需要编码,只需将该内容的返回放入
createElement
。例如,
createElement(htmlspecialchars($string))
这解决了问题,但我无法传递url中的参数
$VAST\u Impression
它给了我一个错误
DOMDocument::createElement():未终止的实体引用
您必须传递一个有效的内容。。检查真正的字符串内容,并确保对createElement有效。回答udpated。。您需要一个标记和一个值
$xml_Impression = $xml->Impression->createElement('your_tag', $VAST_Impression);