This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Well, the difference is that one's name starts with "D" and the other's name starts with "X". But there are actually other differences. Let's see... they were written by different people... they have different class and method names... I'm sure I could go on but I don't see the point. What exactly are you looking for as an answer for this question?
XOM -like dom4j and JDOM- is a Java-only XML object model, whereas DOM was designed to be used with various languages. That makes DOM less of a natural fit for Java, and more awkward to use than it should be in some circumstances, because it doesn't use Java-specific language features that are not available in other languages. It's more of a personal preference which one to use.