我从PHP: "undefined method DOMNodeList::setAttribute()" from line 9
得到这个错误消息。我试图改变图像的src在我的HTML在我的服务器,到目前为止,这是我的代码:
<?php
if (isset($_POST['id']) && isset($_POST['name']))
{
$id = $_POST['id'];
$name = $_POST['name'];
$html = $_POST['html'];
$dom = new domDocument;
$dom->loadHTML($html);
$node = $dom->getElementsByTagName( 'img' );
$node ->setAttribute('src', 'images/' . $name);//line 9
echo $dom->saveHTML();
}
echo 'error';
exit;
//html
<div><img id="picture" src=""></div>
变量'id'是特定HTML行的HTML id, name是图像的名称,HTML是HTML的行。
据我所知,我选择了一行特定的HTML,然后加载到我的DOM变量中。然后我指定元素:"img"然后我可以通过使用setAttribute进行编辑,但是这不起作用。我只想更改ID为"picture"的图片的来源
但是DOMNodeList没有这个方法。
getElementsByTagName
是DOMDocument类的一部分。
不需要强制类型转换,只需调用方法:
$links = $dom->getElementsByTagName('a');
foreach ($links as $link) {
$spans = $link->getElementsByTagName('span');
}
顺便说一下,DOMElement是DOMNode的子类。如果您谈论的是DOMNodeList,那么访问这样一个列表中的元素可以通过上面提供的方法(带有foreach循环)或使用DOMNodeList
的item()方法来完成。$link_0 = $dom->getElementsByTagName('a')->item(0);
getElementsByTagName
返回节点列表。试着输入:
$nodes = $dom->getElementsByTagName('img');
foreach ($nodes as $node) {
$node->setAttribute('src', 'images/' . $name);
}