Top Banner
DOM Parser Examples Creating Blank DOM Document import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class CreateBlankDocument { public static void main(String[] args) { System.out.println("Creating Blank Document..."); try{ //Create instance of DocumentBuilderFactory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //Get the DocumentBuilder DocumentBuilder parser = factory.newDocumentBuilder(); //Create blank DOM Document Document doc = parser.newDocument(); }catch(Exception e){ System.out.println(e.getMessage()); } System.out.println("Done..."); System.out.println("Exiting..."); } } Creating DOM Child Elements import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer;
27

XML

Nov 02, 2014

Download

Documents

sankarcpt

xml programs
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: XML

DOM Parser Examples

Creating Blank DOM Document

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

public class CreateBlankDocument{ public static void main(String[] args) { System.out.println("Creating Blank Document..."); try{ //Create instance of DocumentBuilderFactory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //Get the DocumentBuilder DocumentBuilder parser = factory.newDocumentBuilder(); //Create blank DOM Document Document doc = parser.newDocument(); }catch(Exception e){ System.out.println(e.getMessage()); }

System.out.println("Done..."); System.out.println("Exiting...");

}

}

Creating DOM Child Elements

import java.io.File;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Comment;import org.w3c.dom.Document;import org.w3c.dom.Element;

Page 2: XML

class CreateDomXml { public static void main(String[] args) { try{ //Create instance of DocumentBuilderFactory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //Get the DocumentBuilder DocumentBuilder docBuilder = factory.newDocumentBuilder(); //Create blank DOM Document Document doc = docBuilder.newDocument();

//create the root element Element st = doc.createElement("Students"); //add it to the xml tree doc.appendChild(st); //create a comment Comment comment = doc.createComment("This is comment"); //add in the root element st.appendChild(comment);

//create child element Element childElement = doc.createElement("student"); //Add the atribute to the child childElement.setAttribute("id","1001"); st.appendChild(childElement);

TransformerFactory tranFactory = TransformerFactory.newInstance(); Transformer aTransformer = tranFactory.newTransformer();

Source src = new DOMSource(doc); Result dest = new StreamResult(new File("cpt.xml")); aTransformer.transform(src, dest);

}catch(Exception e){ System.out.println(e.getMessage()); } }}

output:---------

<?xml version="1.0" encoding="UTF-8" ?> <root><!-- This is comment--> 

Page 3: XML

Getting The XML Root Element

import org.w3c.dom.*;import javax.xml.parsers.*;import java.io.*;

public class GetRootNode{ public static void main(String[] args) { try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter xml file name: "); String str = bf.readLine(); File file = new File(str); if (file.exists()){ DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = fact.newDocumentBuilder(); Document doc = builder.parse(str); Node node = doc.getDocumentElement(); String root = node.getNodeName(); System.out.println("Root Node: " + root); } else{ System.out.println("File not found!"); } } catch(Exception e){} }}

To Count XML Element

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;import org.w3c.dom.NodeList;

public class DOMCountElement{ public static void main(String[] args) { try { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter File name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if (file.exists()){

Page 4: XML

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // Create the builder and parse the file Document doc = factory.newDocumentBuilder().parse(xmlFile); System.out.print("Enter element name: "); String element = bf.readLine(); NodeList nodes = doc.getElementsByTagName(element); System.out.println("xml Document Contains " + nodes.getLength() + " elements."); } else{ System.out.print("File not found!"); } } catch (Exception ex) { System.out.println(ex); } }}

XML Well-Formed-ness

import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;import org.xml.sax.InputSource;

public class DOMParserCheck { static public void main(String[] arg){ try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter File name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if(file.exists()){ try { // Create a new factory to create parsers DocumentBuilderFactory dBF = DocumentBuilderFactory.newInstance(); // Use the factory to create a parser (builder) and use // it to parse the document. DocumentBuilder builder = dBF.newDocumentBuilder(); // builder.setErrorHandler(new MyErrorHandler()); InputSource is = new InputSource(xmlFile); Document doc = builder.parse(is); System.out.println(xmlFile + " is well-formed!"); } catch (Exception e) { System.out.println(xmlFile + " isn't well-formed!"); System.exit(1);

Page 5: XML

} } else{ System.out.print("File not found!"); } } catch(IOException io){ io.printStackTrace(); } }}

Searching an Element in the given XML Document

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import org.w3c.dom.Document;import org.w3c.dom.NodeList;

import com.sun.org.apache.xerces.internal.parsers.DOMParser;

public class SearchElement{ public static void main(String[] args) { try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter file name: "); String str = bf.readLine(); File file = new File(str); if (file.exists()){ DOMParser parser = new DOMParser(); parser.parse(str); Document doc = parser.getDocument(); System.out.print("Enter element that have to count: "); String ele = bf.readLine(); NodeList list = doc.getElementsByTagName(ele); if(list.getLength() == 0){ System.out.println("Element doesn't exist in the " + str + " Document."); } else{ System.out.println("Element occurrs " + list.getLength() + " times in the " + str); } } else{ System.out.println("File not found!"); } } catch (Exception e){ e.getMessage(); } }}

Page 6: XML

Create - XML File (Document)

import java.io.*;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.*;import javax.xml.transform.stream.*;import org.w3c.dom.*; public class CreatXMLFile { public static void main(String[] args) throws Exception { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter number to add elements in your XML file: "); String str = bf.readLine(); int no = Integer.parseInt(str); System.out.print("Enter root: "); String root = bf.readLine(); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.newDocument(); Element rootElement = document.createElement(root); document.appendChild(rootElement); for (int i = 1; i <= no; i++){ System.out.print("Enter the element: "); String element = bf.readLine(); System.out.print("Enter the data: "); String data = bf.readLine(); Element em = document.createElement(element); em.appendChild(document.createTextNode(data)); rootElement.appendChild(em); } TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(document); StreamResult result = new StreamResult(System.out); transformer.transform(source, result); }}

Regenerating XML  file

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

Page 7: XML

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;import org.w3c.dom.Node;

public class GetElementsDOM{ static public void main(String[] arg)throws Exception{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML File Name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if(file.exists()){ try { // Create a factory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // Use document builder factory DocumentBuilder builder = factory.newDocumentBuilder(); //Parse the document Document doc = builder.parse(xmlFile); TransformerFactory tranFact = TransformerFactory.newInstance(); Transformer transfor = tranFact.newTransformer(); Node node =doc.getDocumentElement(); Source src = new DOMSource(node); Result dest = new StreamResult(new File("Copy_of_Sample.xml")); transfor.transform(src, dest); } catch (Exception e) { System.err.println(e); } } else{ System.out.print("File not found!"); } }}

XML Error checker and locater (DOM)

import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;

Page 8: XML

import org.w3c.dom.Document;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;

public class DOMLocateError{ static public void main(String[] arg){ try { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter File name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if(file.exists()){ // Create a new factory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // Use the factory to create builder document. DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); System.out.println(xmlFile + " is well-formed!"); } else{ System.out.print("File not found!"); } } catch (SAXParseException e) { System.out.println("type" + ": " + e.getMessage()+"\n"); System.out.println("Line " + e.getLineNumber() + " Column " + e.getColumnNumber()); } catch (SAXException e) { System.err.println(e); System.exit(1); } catch (ParserConfigurationException e) { System.err.println(e); System.exit(1); } catch (IOException e) { System.err.println(e); System.exit(1); } }}

Getting all XML Elements 

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;

Page 9: XML

import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;

public class DOMElements{ static public void main(String[] arg){ try { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML File name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if(file.exists()){ // Create a factory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // Use the factory to create a builder DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); // Get a list of all elements in the document NodeList list = doc.getElementsByTagName("*"); System.out.println("XML Elements: "); for (int i=0; i<list.getLength(); i++) { // Get element Element element = (Element)list.item(i); System.out.println(element.getNodeName()); } } else{ System.out.print("File not found!"); } } catch (Exception e) { System.exit(1); } }}

Adding DOCTYPE to a  XML File

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

Page 10: XML

public class AddDocType{ static public void main(String[] args){ try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name: "); String xmlFile = bf.readLine(); System.out.println(); File file = new File(xmlFile); if (file.exists()){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile);// Create transformer Transformer tFormer = TransformerFactory.newInstance().newTransformer();// Set system id tFormer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "systmId");// Set public id// tFormer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "publicId"); Source source = new DOMSource(doc); Result result = new StreamResult(System.out); tFormer.transform(source, result); System.out.println(); } else{ System.out.println("File not found!"); } } catch (Exception e){ e.getMessage(); } }}

Getting Dom Tree Elements and their Corresponding XML Fragments

import java.io.*;import javax.xml.parsers.*;import org.w3c.dom.*;import org.xml.sax.*;import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult;

public class DisplayElementNodes { static public void main(String[] arg){ try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a XML file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if (file.exists()){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); TransformerFactory tranFactory = TransformerFactory.newInstance();

Page 11: XML

Transformer aTransformer = tranFactory.newTransformer(); // Get nodes list of all elements NodeList list = doc.getElementsByTagName("*"); for (int i=0; i<list.getLength(); i++){ // Get element Element element = (Element)list.item(i); Source src = new DOMSource(element); System.out.println("Node no: " + i + " is " + element.getNodeName()); System.out.println( "Its corresponding xml representation:"); Result dest = new StreamResult(System.out); aTransformer.transform(src, dest); System.out.println("\n"); } } else{ System.out.println(xmlFile + " (file name) doesn't found!"); } } catch (Exception e){ e.getMessage(); } }}

Cloning a XML Element

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;

public class DOMCloneElements { static public void main(String[] arg){ try { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if (file.exists()){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); TransformerFactory tFactory = TransformerFactory.newInstance();

Page 12: XML

Transformer tformer = tFactory.newTransformer(); Source source = new DOMSource(doc); Result result = new StreamResult(System.out); System.out.println(xmlFile + " file: "); tformer.transform(source, result); System.out.println(); System.out.print("Enter the element to clone: "); String clone = bf.readLine(); System.out.print("Enter data to add: "); String addElement = bf.readLine(); //////////////////////////////// NodeList list = doc.getElementsByTagName(clone); Element element1 = (Element)list.item(0); Element copyElement = (Element) element1.cloneNode(true); element1.getParentNode().insertBefore(copyElement, element1.getNextSibling()); element1.appendChild(doc.createTextNode(addElement)); tformer.transform(source, result); } else{ System.out.println("File not found!"); } } catch (Exception e){ e.getMessage(); } }}

Remove Element from XML Document

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;import org.w3c.dom.Element;

public class RemoveElement { static public void main(String[] arg) { try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a XML file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile);

Page 13: XML

System.out.print("Enter an element which have to delete: "); String remElement = bf.readLine(); if (file.exists()){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer tFormer = tFactory.newTransformer(); Element element = (Element)doc.getElementsByTagName(remElement).item(0);// Remove the node element.getParentNode().removeChild(element);// Normalize the DOM tree to combine all adjacent nodes doc.normalize(); Source source = new DOMSource(doc); Result dest = new StreamResult(System.out); tFormer.transform(source, dest); System.out.println(); } else{ System.out.println("File not found!"); } } catch (Exception e){ System.err.println(e); System.exit(0); } }}

Getting Data from XML File (Document)

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

public class GetData{ static public void main(String[] arg) { try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile);

Page 14: XML

if (file.exists()){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile);// Create transformer Transformer tFormer = TransformerFactory.newInstance().newTransformer();// Output text type tFormer.setOutputProperty(OutputKeys.METHOD, "text");// Write the document to a file Source source = new DOMSource(doc); Result result = new StreamResult(System.out); tFormer.transform(source, result); } else{ System.out.println("File not found!"); } } catch (Exception e){ System.err.println(e); System.exit(0); } }}

Storing Data (Retrieved from a XML Document) to a File

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

public class StoreData{ static public void main(String[] arg) { try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if (file.exists()){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile);// Create transformer Transformer tFormer = TransformerFactory.newInstance().newTransformer();

Page 15: XML

// Output Types (text/xml/html) tFormer.setOutputProperty(OutputKeys.METHOD, "text");// Write the document to a file Source source = new DOMSource(doc);// Create File to view your xml data as vk.txt/vk.doc/vk.xls/vk.shtml/vk.html) Result result = new StreamResult(new File("vk.txt")); tFormer.transform(source, result); System.out.println("File creation successfully!"); } else{ System.out.println("File not found!"); } } catch (Exception e){ System.err.println(e); System.exit(0); } }}

XML Validate DTD 

import java.io.FileInputStream;

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;

public class DOMValidateDTD { public static void main(String args[]) { try{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(true); DocumentBuilder builder = factory.newDocumentBuilder(); builder.setErrorHandler(new org.xml.sax.ErrorHandler() { //Ignore the fatal errors public void fatalError(SAXParseException exception)throws SAXException { } //Validation errors public void error(SAXParseException e)throws SAXParseException { System.out.println("Error at " +e.getLineNumber() + " line."); System.out.println(e.getMessage()); System.exit(0); } //Show warnings public void warning(SAXParseException err)throws SAXParseException{ System.out.println(err.getMessage());

Page 16: XML

System.exit(0); } }); Document xmlDocument = builder.parse(new FileInputStream("Sample.xml")); DOMSource source = new DOMSource(xmlDocument); StreamResult result = new StreamResult(System.out); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "Employee.dtd"); transformer.transform(source, result); } catch (Exception e) { System.out.println(e.getMessage()); } }}

SAX Parser

XML Well-Formed Verifier

package com.eMeter.xml.sax;

import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;

import org.xml.sax.SAXException;import org.xml.sax.XMLReader;import org.xml.sax.helpers.XMLReaderFactory;

public class SAXParserCheck{

public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name:"); String xmlFile = bf.readLine(); new SAXParserCheck(xmlFile); } public SAXParserCheck(String str){ try{ File file = new File(str); if (file.exists()){ XMLReader reader = XMLReaderFactory.createXMLReader(); reader.parse(str); System.out.println(str + " is well-formed!"); } else{ System.out.println("File not found: " + str);

Page 17: XML

} } catch (SAXException sax){ System.out.println(str + " isn't well-formed"); } catch (IOException io){ System.out.println(io.getMessage()); } }}

Get XML Elements

package com.eMeter.xml.sax;

import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;

public class XMLElements {public static void main(String[] args) {

try {SAXParserFactory parserFact = SAXParserFactory.newInstance();SAXParser parser = parserFact.newSAXParser();System.out.println("XML Elements: ");DefaultHandler handler = new DefaultHandler() {

public void startElement(String uri, String lName, String ele,Attributes attributes) throws SAXException {

//print elements of xmlSystem.out.println(ele);

}};parser.parse(args[0], handler);

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

}}

}

Get Data From the XML File

package com.eMeter.xml.sax;

import java.io.BufferedReader;import java.io.File;

Page 18: XML

import java.io.IOException;import java.io.InputStreamReader;

import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;

public class EmployeeDetails{ public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name:"); String xmlFile = bf.readLine(); new EmployeeDetails(xmlFile); } public EmployeeDetails(String str){ try{ File file = new File(str); if (file.exists()){ SAXParserFactory parserFact = SAXParserFactory.newInstance(); SAXParser parser = parserFact.newSAXParser(); System.out.println("XML Data: "); DefaultHandler dHandler = new DefaultHandler(){ boolean id; boolean name; boolean mail; public void startElement(String uri, String localName, String element_name, Attributes attributes)throws SAXException{ if (element_name.equals("Emp_Id")){ id = true; } if (element_name.equals("Emp_Name")){ name = true; } if (element_name.equals("Emp_E-mail")){ mail = true; } } public void characters(char[] ch, int start, int len) throws SAXException{ String str = new String (ch, start, len); if (id){ System.out.println("Emp_Id: "+str); id = false; } if (name){ System.out.println("Name: "+str); name = false; } if (mail){ System.out.println("E-mail: "+str); mail = false; }

Page 19: XML

} }; parser.parse(str, dHandler); } else{ System.out.println("File not found!"); } } catch (Exception e){ System.out.println("XML File hasn't any elements"); e.printStackTrace(); } }}

XML Count Elements

package com.eMeter.xml.sax;

import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;

import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;

public class SAXElementCount {int startTag = 0;public static String ele;

public static void main(String args[]) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));System.out.print("Enter XML file name:");String xmlFile = bf.readLine();File file = new File(xmlFile);if (file.exists()) {

System.out.print("Enter XML tag name:");ele = bf.readLine();new SAXElementCount(xmlFile);

} else {System.out.println("File not found!");

}}

public SAXElementCount(String str) {try {

SAXParserFactory parserFact = SAXParserFactory.newInstance();SAXParser parser = parserFact.newSAXParser();

Page 20: XML

DefaultHandler dHandler = new DefaultHandler() {public void startElement(String uri, String name,

String element, Attributes atri) throws SAXException {if (element.equals(ele)) {

startTag++;}

}public void endDocument() {

System.out.println("Total elements: " + startTag);}

};parser.parse(str, dHandler);

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

}}

}

XML Error Checking and Locating

package com.eMeter.xml.sax;

import org.xml.sax.*;import org.xml.sax.helpers.*;import javax.xml.parsers.*;import java.io.*;

public class LocateError{

public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter XML file name:"); String xmlFile = bf.readLine(); new LocateError(xmlFile); } public LocateError(String str){ try{ File file = new File(str); if (file.exists()){ XMLReader reader = XMLReaderFactory.createXMLReader(); reader.parse(str); System.out.println(str + " is well-formed!"); } else{ System.out.println("File not found: " + str); } } catch (SAXParseException sax){ System.out.println(str + " isn't well-formed"); int line = sax.getLineNumber(); int col = sax.getColumnNumber(); System.out.println("Error is at line number "+ line + "and Column position "+ col); }

Page 21: XML

catch (SAXException sax){} catch (IOException io){ System.out.println(io.getMessage()); } }}

Getting Attributes and its Value

package com.eMeter.xml.sax;import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;import org.xml.sax.helpers.DefaultHandler;

public class ReadAttributes { public static void main(String[] args) { try { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a xml file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if (file.exists()){ //SAX-implementation: SAXParserFactory factory = SAXParserFactory.newInstance(); // Create SAX-parser SAXParser parser = factory.newSAXParser(); System.out.println("Name:\t" + "Value:"); //Define a handler SaxHandler handler = new SaxHandler(); // Parse the xml document parser.parse(xmlFile, handler); } else{ System.out.println("File not found!"); } } catch (Exception e) { e.printStackTrace(); } } private static class SaxHandler extends DefaultHandler { public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXParseException,SAXException { int length = attrs.getLength();

Page 22: XML

//Each attribute for (int i=0; i<length; i++) { // Get names and values to each attribute String name = attrs.getQName(i); System.out.print(name); String value = attrs.getValue(i); System.out.println("\t"+value); } } }}

Locating the Notified Events

package com.eMeter.xml.sax;

import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;

import org.xml.sax.Attributes;import org.xml.sax.Locator;import org.xml.sax.XMLReader;import org.xml.sax.helpers.DefaultHandler;import org.xml.sax.helpers.XMLReaderFactory;

public class WorkingSAXParserLocator extends DefaultHandler { private Locator locator; public static void main(String[] args) { try { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter xml file name: "); String xmlFile = bf.readLine(); File file = new File(xmlFile); if (file.exists()){ XMLReader parser = XMLReaderFactory.createXMLReader(); DefaultHandler handler = new WorkingSAXParserLocator(); parser.setContentHandler(handler); //parse xml file parser.parse(xmlFile); } else{ System.out.println("File not found!"); } } catch (Exception e) { System.err.println(e); } } public void setDocumentLocator(Locator locator) { this.locator = locator; }

Page 23: XML

//All methods positions private void printLocation(String location) { int line = locator.getLineNumber(); int column = locator.getColumnNumber(); System.out.println(location + " Line no: " + line + "\tColumn no: " + column); } //Document start public void startDocument() { printLocation("startDocument() method called at"); } //Document end public void endDocument() { printLocation("endDocument() method called at"); } //Element start public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes atts) { printLocation("startElement() method called at "); } //Element end public void endElement(String namespaceURI, String localName, String qualifiedName) { printLocation("endElement() method called at \t"); } //characters public void characters(char[] text, int start, int length) { printLocation("characters() method called at \t"); }}