Add a new node @elem as the previous sibling of @cur
          merging adjacent TEXT nodes (@elem may be freed) If the new
          node was already inserted in a document it is first
          unlinked from its existing context. If the new node is
          ATTRIBUTE, it is added into properties instead of children.
          If there is an attribute with equal name, it is first
           destroyed.

def addPrevSibling(self, elem):
        """Add a new node @elem as the previous sibling of @cur
          merging adjacent TEXT nodes (@elem may be freed) If the new
          node was already inserted in a document it is first
          unlinked from its existing context. If the new node is
          ATTRIBUTE, it is added into properties instead of children.
          If there is an attribute with equal name, it is first
           destroyed. """
        if elem is None: elem__o = None
        else: elem__o = elem._o
        ret = libxml2mod.xmlAddPrevSibling(self._o, elem__o)
        if ret is None:raise treeError('xmlAddPrevSibling() failed')
        __tmp = xmlNode(_obj=ret)
        return __tmp