0
$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
}

如何用新的替换链接的节点值?(使用 domdocument)

li 里面实际上有一个链接,但是我不确定如何在没有 foreach 的情况下获得它。

4

3 回答 3

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);
于 2012-02-14T19:32:32.150 回答
0

您是否尝试过赋值运算符,=

$link->nodeValue = $link_text;
于 2012-02-14T19:33:02.887 回答
0

http://us2.php.net/manual/en/class.domnode.php#domnode.props.nodevalue

nodeValue 是一个字符串。它不能被称为方法。您可以直接设置此字符串的值,因为它是公共成员。

$link->nodeValue = $link_text;

上面链接的文档应该回答您的任何问题。

于 2012-02-14T19:34:33.617 回答