API's xml parser


#1

Sample java coded parser for the API's xml. Not elegant but works.


Code:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;

public class SampleXmlParsing
{
public static void main( String args[] ) {
String categories = "";
String media = "";
try {
File file = new File("incidents.xml");

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
document.getDocumentElement().normalize();

System.out.println("Root element "+document.getDocumentElement().getNodeName());
NodeList node = document.getElementsByTagName("incident");
System.out.println("Incident information");
int total = 0;
String locations = "";

for( int i = 0; i < node.getLength(); i++ ) {
Node firstNode = node.item(i);
if( firstNode.getNodeType() == Node.ELEMENT_NODE ) {
Element element = (Element) firstNode;

NodeList idElementList = element.getElementsByTagName("id");
Element idElement = (Element) idElementList.item(0);

NodeList id = idElement.getChildNodes();
System.out.println("Incident id: "+ ((Node) id.item(0)).getNodeValue());

NodeList titleElementList = element.getElementsByTagName("title");
Element titleElement = (Element) titleElementList.item(0);

NodeList title = titleElement.getChildNodes();
System.out.println("Incident Title: "+ ((Node) title.item(0)).getNodeValue());

NodeList descElementList = element.getElementsByTagName("description");
Element descElement = (Element) descElementList.item(0);

NodeList desc = descElement.getChildNodes();
System.out.println("Incident Description: "+ ((Node) desc.item(0)).getNodeValue());

NodeList dateElementList = element.getElementsByTagName("date");
Element dateElement = (Element) dateElementList.item(0);

NodeList date = dateElement.getChildNodes();
System.out.println("Incident Date: "+ ((Node) date.item(0)).getNodeValue());

NodeList modeElementList = element.getElementsByTagName("mode");
Element modeElement = (Element) modeElementList.item(0);

NodeList mode = modeElement.getChildNodes();
System.out.println("Incident Mode: "+ ((Node) title.item(0)).getNodeValue());

NodeList activeElementList = element.getElementsByTagName("active");
Element activeElement = (Element) activeElementList.item(0);

NodeList active = activeElement.getChildNodes();
System.out.println("Incident active: "+ ((Node) active.item(0)).getNodeValue());

NodeList verifiedElementList = element.getElementsByTagName("verified");
Element verifiedElement = (Element) verifiedElementList.item(0);

NodeList verified = verifiedElement.getChildNodes();
System.out.println("Incident Verified: "+ ((Node) verified.item(0)).getNodeValue());

//location
NodeList locationElementList = element.getElementsByTagName
("location");

Node locationNode = locationElementList.item(0);

Element locationElement = (Element) locationNode;
NodeList locationNameList = locationElement.getElementsByTagName("name");

Element locationInnerNameElement = (Element) locationNameList.item(0);
NodeList locationInnerName = locationInnerNameElement.getChildNodes();

System.out.println("Location Name: "+((Node) locationInnerName.item(0)).getNodeValue() );

NodeList locationLatitudeList = locationElement.getElementsByTagName("latitude");

Element locationInnerLatitudeElement = (Element) locationLatitudeList.item(0);
NodeList locationInnerLatitude = locationInnerLatitudeElement.getChildNodes();
System.out.println("Location Latitude: "+((Node)locationInnerLatitude.item(0)).getNodeValue());

NodeList locationLongitudeList = locationElement.getElementsByTagName("longitude");

Element locationInnerLongitudeElement = (Element) locationLongitudeList.item(0);
NodeList locationInnerLongitude = locationInnerLongitudeElement.getChildNodes();
System.out.println("Location Longitude: "+((Node)locationInnerLongitude.item(0)).getNodeValue());

//categories
NodeList categoryList = element.getElementsByTagName
("category");
for( int w=0; w < categoryList.getLength(); w++ ) {

Node categoryNode = categoryList.item(w);
if (categoryNode.getNodeType() == Node.ELEMENT_NODE) {
Element categoryElement = (Element) categoryNode;
NodeList categoryNameList = categoryElement.getElementsByTagName("title");
Element categoryInnerTitleElement = (Element) categoryNameList.item(0);
NodeList categoryInnerTitle = categoryInnerTitleElement.getChildNodes();
categories += (w == categoryList.getLength() - 1) ? ((Node)categoryInnerTitle.item(0)).getNodeValue() : ((Node)categoryInnerTitle.item(0)).getNodeValue()+",";
}
}
System.out.println("Category Title: "+ categories );
categories = "";

//categories
NodeList mediaList = element.getElementsByTagName
("media");
for( int j=0; j < mediaList.getLength(); j++ ) {

Node mediaNode = mediaList.item(j);
if (mediaNode.getNodeType() == Node.ELEMENT_NODE) {
Element mediaElement = (Element) mediaNode;
NodeList mediaThumbList = mediaElement.getElementsByTagName("thumb");

if( mediaThumbList.getLength() != 0) {

Element mediaInnerThumbElement = (Element) mediaThumbList.item(0);
NodeList mediaThumb = mediaInnerThumbElement.getChildNodes();

media += (j == mediaList.getLength() -1)? ( (Node)mediaThumb.item(0)).getNodeValue(): ( (Node)mediaThumb.item(0)).getNodeValue()+",";
}
}
}
System.out.println("Media thumb: "+ media );
media = "";

System.out.println();

}
total++;
}

System.out.println("Total document "+total);

} catch (Exception e) {
e.printStackTrace();
}

getCategories();
}

public static void getCategories() {
File file = new File("category.xml");
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
document.getDocumentElement().normalize();

System.out.println("Root element "+document.getDocumentElement().getNodeName());
NodeList node = document.getElementsByTagName("category");
System.out.println("============ Categories information ==============");
int total = 0;
String locations = "";

for( int i = 0; i < node.getLength(); i++ ) {
Node firstNode = node.item(i);
if( firstNode.getNodeType() == Node.ELEMENT_NODE ) {
Element element = (Element) firstNode;

NodeList idElementList = element.getElementsByTagName("id");
Element idElement = (Element) idElementList.item(0);

NodeList id = idElement.getChildNodes();
System.out.println("Category id: "+ ((Node) id.item(0)).getNodeValue());

NodeList titleElementList = element.getElementsByTagName("title");
Element titleElement = (Element) titleElementList.item(0);

NodeList title = titleElement.getChildNodes();
System.out.println("Category Title: "+ ((Node) title.item(0)).getNodeValue());

NodeList descElementList = element.getElementsByTagName("description");
Element descElement = (Element) descElementList.item(0);

NodeList desc = descElement.getChildNodes();
System.out.println("Category Description: "+ ((Node) desc.item(0)).getNodeValue());

NodeList dateElementList = element.getElementsByTagName("color");
Element dateElement = (Element) dateElementList.item(0);

NodeList date = dateElement.getChildNodes();
System.out.println("Category Color: "+ ((Node) date.item(0)).getNodeValue());

System.out.println();

}
total++;
}

System.out.println("Total document "+total);

} catch (Exception e) {
e.printStackTrace();
}
}
}