$links = $li->getElementsByTagName('a');
foreach ($links as $link)
{
$link_text = $link->nodeValue;
$image = $dom->createElement('img');
$image->setAttribute('src', 'some target');
$image->setAttribute('alt', $link_text);
$link->nodeValue($image); // doesnt work
}
如何将链接的nodevalue替换为新的?(使用domdocument)
li里面实际上有一个链接,但我不确定如何在没有foreach的情况下获得它。
答案 0 :(得分:1)
你可以尝试这个(使用$ doc作为你的DOMDocument)。
// saveHTML returns the node as a string of HTML.
$link->nodeValue = $doc->saveHTML($image);
或者,更合适的是,您可以将图像添加为子节点:
// name should be self-documenting.
$link->appendChild($image);
另外,如果你只有一个,你可以简单地使用item
方法并避开foreach:
$link = $li->getElementsByTagName('a')->item(0);
答案 1 :(得分:0)
您是否尝试过赋值运算符=
?
$link->nodeValue = $link_text;
答案 2 :(得分:0)
http://us2.php.net/manual/en/class.domnode.php#domnode.props.nodevalue
nodeValue是一个字符串。它不能被称为方法。您可以直接设置此字符串的值,因为它是公共成员。
$link->nodeValue = $link_text;
上面链接的文档应该回答您的任何问题。