Just wanted to point out that there is a difference in API of removing a child between Axiom and DOM. The API of removing a child from a xml tree is different between Axiom and DOM. In DOM, we do following to remove a child.
childNode.getParentNode().removeChild(parentNode);
where childNode is an org.w3c.dom.Node instance.
Basically, what the above does is, when you want to remove a node from a document, it gets the parent node, and then calls the #removeChild to remove the given node from parent.
With Axiom, it's different. What we do is get the child node, and remove it's parent reference. For example,
element = omFactory.createOMElement(name, null);
OMElement element = (OMElement) xpathExpression2.selectSingleNode(documentElement);
element.detach();