We all know that standard Java DOM implementation by Sun, which is bundled with JDK since early eras, has certain disadvantages:
org.w3c.dom.NodeList does not provide a common Java collections interface iterate through it.org.w3c.dom.Document#getElementById() and org.w3c.dom.Document#getElementsByTagName().These limitations do not come out from bad model design but are the result of strict following W3C specifications. The way out is to use alternative libraries, which compensate these limitations plus provide some extra bonuses.
Personal notes:
 Provides a true fluent API on the top of W3C DOM JDK implementation. It provides you the mechanism to create, navigate and navigate DOM tree in a stateful manner.
 A nice lightweight solution to you define a XML-to-Java object mapping, which is based on XML pattern rules which are triggered when the given XML path is recognized. 
 Designed to target divorced big XML files.
 The serialization and parsing of XML tree is included into tree model elements. This triggers the following limitations:String, File, OutputStream or Writer at the moment.XMLEventReader), but not for push parsers (e.g. ContentHandler).Attribute implementation with mine, which extends the standard)
 This is natural AXIOM facility not to create the complete XML tree model as the pulling the elements from builder occurs when you request the needed information from the model.
 If choosing between jDOM and XOM – take XOM as it is jDOM's successor. 
 jDOM has no natural DOM elements class hierarchy (e.g. Document, Attribute, Element is a Node) 
 Have a look at XOM vs. dom4j notes by Elliotte Rusty Harold (author of XOM and also the contributor of JDOM).
 The community is so limited, that nobody cares about releasing new versions of XOM into maven. 
 XOM aims to enforce correctness better than JDOM/dom4j, but the API variety is lower, also because:Relative links:
Node#cloneNode()ElementHandler should detach the node from the tree after processingNodeFactory implementation should return empty node listOMNavigatornu.xom.XOMHandler, but it is non-public class