JDOM

From Wikipedia, the free encyclopedia
(Redirected from Java Document Object Model)
Jump to navigation Jump to search
JDOM
Stable release
2.0.6.1 / December 9, 2021 (2021-12-09)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inJava
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeXML binding
    LicenseSimilar to Apache License
    Websitejdom.org
    JDOM in LePUS3
    JDOM factories in LePUS3

    JDOM is an open-source Java-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 | edit source]

    Suppose the file "foo.xml" contains this XML document:

    <shop name="shop for geeks" location="Tokyo, Japan">
      <computer name="iBook" price="1200$" />
      <comic_book name="Dragon Ball vol 1" price="9$" />
      <geekyness_of_shop price="priceless" />
    </shop>
    

    One can parse the XML file into a tree of Java objects with JDOM, like so:

    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(new FileInputStream("foo.xml"));
    Element root = 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.

    Element root = new Element("shop"); // here <shop></shop> is the root
    Document doc = new Document(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:

    Element root = new Element("shop");
    root.setAttribute("name", "shop for geeks");
    root.setAttribute("location", "Tokyo, Japan");
    Element item1 = new Element("computer");
    item1.setAttribute("name", "iBook");
    item1.setAttribute("price", "1200$");
    root.addContent(item1);
    // perform similar steps for other elements
    XMLOutputter outputter = new XMLOutputter();
    outputter.output(new Document(root), new FileOutputStream ("foo2.xml"));
    

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]

    Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).