There's a bug in the docs here. The order of arguments is the other way round i.e.
object DomNode->replace_child ( object newnode, object oldnode)
Here's an example of it working:
<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$doc->append_child($root);
$head = $doc->create_element("HEAD");
$root->append_child($head);
$title = $doc->create_element("TITLE");
$head->append_child($title);
$text = $doc->create_text_node("This is the title");
$title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
$newtitle = $doc->create_text_node("No, this is the title");
// object DomNode->replace_child ( object newnode, object oldnode)
$title->replace_child($newtitle,$title->first_child());
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>
DomNode::replace_child
(PHP 4 >= 4.2.0)
DomNode::replace_child — Replaces a child
Beschreibung
(PHP 4.2) This function replaces the child oldnode
with the passed new node. If the new node is already a child it
will not be added a second time. If the old node cannot be found
the function returns FALSE. If the replacement succeeds the old node
is returned.
(PHP 4.3) This function replaces the child oldnode
with the passed newnode, even if the new node already
is a child of the DomNode. If newnode was already
inserted in the document it is first unlinked from its existing context.
If the old node cannot be found the function returns FALSE. If the replacement
succeeds the old node is returned. (This behaviour is according to the W3C specs).
See also domnode_append_child()
DomNode::replace_child
27-Feb-2004 03:25