XML & JSON PARSERS
WHAT IS PARSING A
XML / JSON DOCUMENT
Reading a xml / json document to determine its
structure or extract its content.
DIFFERENT WAYS OF
* DOM - Document Object Model - org.w3c.dom.*
* JDOM - Open source version of DOM - org.jdom.*
* SAX - Simple API for XML - org.xml.sax.*
* StAX - Streaming API for XML - java.xml.stream.*
* Document Object Model - An interface for working
with the structure of an xml document.
* Developed by w3c to make life easier for the
* XML is loaded in hierarchical data structure( the
DOM tree ).
* Everything in a DOM tree is a Node of one type or
* Element: Represent an XML element in the source
* Attr: Represents an attribute of an XML element.
* Text: The content of an element of an XML element.
* Document: Represents the entire XML document.
COMMON DOM METHODS
* Document.getDocumentElement(); returns the root
of the DOM tree
* Node.getFirstChild() & Node.getLastChild(); returns
the first or last child of a given Node.
* Node.getNextSibling() & Node.getPreviousSibling();
returns the next or previous sibling of a given Node.
* Element.getAttribute( String attrName); returns the
value of the attribute named attrName of a given
Simple API for XML - Designed to address the issues
* Memory hog
* Excess objects
* Build entire document tree for code to work
HOW SAX WORKS
SAX parsers tells you when it finds things in the XML
document using events.
* It sends you events as it finds things in an XML
* It gives the option for creating objects as when
* It sends events right on the onset, doesn’t have to
wait for the parser to finish reading the document.
COMMON SAX EVENTS
SAX API defines number of events. Write code to do
things in response to those events.
* startDocument(); prompts that it has found the start
of the document.
* endDocument(); prompts that it has found the end of
* startElement(...); found a start tag--
name,values,attributes of the element.
* characters(...); found some text. char array
* endElement(..); found an end tag--name + assoc.
* You Need to know a lot about the document
* You Need to change the structure of the document
* You don’t have much machine memory
* You only need a few elements or attributes from the
* You need to do xml processing on mobile devices
EXAMPLE PARSING XML
* Get a document builder using document builder
factory and parse the xml file to create a DOM obj.
* Get a list of employee elements from the DOM.
* For each employee element get the id, name, age and
* Iterate through the list and print the employees
HOW TO GENERATE
XML FROM JAVA
This time generate an xml file instead of reading it.
* Load Data.
* Get an instance of Document object using document
* Create root element Personnel.
* For each item in the list create a Book element.
* Serialize DOM to FileOutputStream to generate the