JDOM
![]() | This article contains instructions, advice, or how-to content.(May 2011) |
Stable release | 2.0.6.1 / December 9, 2021 |
---|---|
Repository | |
Written in | Java |
Operating system | Cross-platform |
Type | XML binding |
License | Similar to Apache License |
Website | jdom |


JDOM is an open-sourceJava-based document object model for XML that was designed specifically for the Java platform so that it can take advantage of its language features.[1] JDOM integrates with Document Object Model (DOM) and Simple API for XML (SAX), supports XPath and XSLT.[2] It uses external parsers to build documents. JDOM was developed by Jason Hunter and Brett McLaughlin starting in March 2000.[3] It has been part of the Java Community Process as JSR 102, though that effort has since been abandoned.[4]
Examples
[edit]Suppose the file "foo.xml" contains this XML document:
<shopname="shop for geeks"location="Tokyo, Japan"><computername="iBook"price="1200$"/><comic_bookname="Dragon Ball vol 1"price="9$"/><geekyness_of_shopprice="priceless"/></shop>
One can parse the XML file into a tree of Java objects with JDOM, like so:
SAXBuilderbuilder=newSAXBuilder();Documentdoc=builder.build(newFileInputStream("foo.xml"));Elementroot=doc.getRootElement();// root.getName() is "shop"// root.getAttributeValue("name") is "shop for geeks"// root.getAttributeValue("location") is "Tokyo, Japan"// root.getChildren() is a java.util.List object that contains 3 Element objects.
In case you do not want to create the document object from any file or any input stream, you can create the document object against the element.
Elementroot=newElement("shop");// here <shop></shop> is the rootDocumentdoc=newDocument(root);// create a new document with the supplied element as the root
As a converse, one can construct a tree of elements, then generate an XML file from it, as in the following example:
Elementroot=newElement("shop");root.setAttribute("name","shop for geeks");root.setAttribute("location","Tokyo, Japan");Elementitem1=newElement("computer");item1.setAttribute("name","iBook");item1.setAttribute("price","1200$");root.addContent(item1);// perform similar steps for other elementsXMLOutputteroutputter=newXMLOutputter();outputter.output(newDocument(root),newFileOutputStream("foo2.xml"));
References
[edit]- ^"JDOM". Maven Repository. Retrieved October 14, 2024.
- ^"How to read XML file in Java – (JDOM Parser)". Mkyong.com. 21 December 2009. Retrieved October 14, 2024.
- ^"artima - A Design Review of JDOM". www.artima.com. Retrieved 2024-10-14.
- ^"The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 102". www.jcp.org. Retrieved 2024-10-14.