'Replace a L{Node} which is already a child of this node with a
different node.
@param newChild: A L{Node} which will be made a child of this node.
@param oldChild: A L{Node} which is a child of this node which will
give up its position to C{newChild}.
@raise TypeError: If C{newChild} or C{oldChild} is not a C{Node}
instance.
@raise ValueError: If C{oldChild} is not a child of this C{Node}.'

def replaceChild(self, newChild, oldChild):

    if ((not isinstance(newChild, Node)) or (not isinstance(oldChild, Node))):
        raise TypeError('expected    Node    instance')
    if (oldChild.parentNode is not self):
        raise ValueError('oldChild    is    not    a    child    of    this    node')
    self.childNodes[self.childNodes.index(oldChild)] = newChild
    oldChild.parentNode = None
    newChild.parentNode = self
