Welcome to dom4j!

dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP.

News

  • dom4j 1.6.1 has been relased! This is a bugfix relase. Take a look at the changelog to see what has changed.
  • dom4j 1.6 has been released! Take a look at the changelog to see what has changed.
  • JetBrains was so kind to provide an open-source license of its famous IntelliJ IDEA product.
  • The internal Aelfred2 parser has been removed from the dom4j codebase due to an incompatible license. You can download a version of dom4j without Aelfred2 from the downloads page.
  • A maintenance relase of dom4j is available. Click here to see what has changed in dom4j 1.5.1.
  • dom4j 1.5 is finally released! A list of changes can be found here.
  • dom4j now has an open source license for the use of Clover
  • RefactorIT has added dom4j to it's list of featured open source projects. This means that all the power of RefactorIT is available for the dom4j sources.
  • The new dom4j 1.4 release is finally out featuring numerous bug fixes and patches.
  • Check out these new Performance Benchmarks comparing dom4j and Jaxen against Xerces and Xalan.
  • The new dom4j 1.3 release is out featuring numerous bug fixes and patches.
  • Check out Dennis Sosnoski's new article for IBM comparing various XML object models - its good stuff.
  • The new dom4j 1.2 release is out featuring improved whitespace handling for more efficient parsing, a new Swing TableModel for displaying XML data in Swing and numerous bug fixes and patches.
  • The Velocity projects new DVSL technology uses dom4j.
  • Interesting article outlining the social dominance of DOM and SAX and the importance of XPath.
  • The new dom4j 1.1 release is out featuring support for DTD declarations and numerous bug fixes and patches.
  • Read the latest performance benchmarks on IBM's site comparing dom4j against all the other XML document models.
  • The new dom4j 1.0 release is out featuring better SAX and Jaxen support, some performance tuning and numerous patches.
  • Sun's reference implementation of JAXM (Java API for XML Messaging) is based on dom4j!
  • The new dom4j 0.9 release is out featuring full Jaxen support!
  • Toby's cookbook is now online!
  • Updated the quick start guide

Features

  • designed for the Java platform with full support for the Java Collections Framework (Java 2 Collections)
  • full support for JAXP, TrAX, SAX, DOM, and XSLT
  • fully integrated XPath support for easy navigation of XML documents
  • event based proccessing mode to support for massive documents or XML streams
  • based on Java interfaces for flexible plug and play implementations.
  • support for XML Schema Data Type support using Kohsuke Kawaguchi's excellent Multi Schema Validator library

Getting Started

You can download the current release or a snapshot build via the download page.

For a quick overview of dom4j and how to use it try the reading the quick start guide or browsing the FAQ or the online JavaDoc.

To see how dom4j compares to other XML object models you could try reading our comparison

Contributors are welcome to join this project. Once you've browsed the FAQ you could try sending an email to one of the mailing lists below or check out the project page.

Useful Links

We really like XPath and if you are working with XML we highly recommend you try to experiment with it. If you need help learning XPath try the excellent Zvon tutorial .

Alternatively you could try Elliotte Rusty Harold's great XML in a nutshell .

Finally you could try reading the XPath spec.

Mailing Lists

For developers there is an email list at dom4j-dev where you can make requests for new features or changes to the API, discuss alternate implementation strategies, submit patches or just talk about any relevant topic of the day.

For dom4j users wanting help using dom4j there is an email list at dom4j-user where you can share ideas and experiences, ask for help, give us feedback or discuss your requirements.

You can browse the archives for here dom4j-dev or here dom4j-dev and here dom4j-user or here dom4j-user