import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import org.apache.xerces.parsers.SAXParser;
public class SaxFigures extends DefaultHandler
{
public void startElement(String uri, String localName, String rawName,
Attributes attributes)
{
if(localName.equals("circle"))
{
String sr = attributes.getValue("r");
float radius = Float.valueOf(sr).floatValue();
float area = (float)Math.PI*radius*radius;
System.out.println("Circle : Radius = " + radius +
" Area = " + area);
}
else if(localName.equals("ellipse"))
{
String sw = attributes.getValue("w");
String sh = attributes.getValue("h");
float width = Float.valueOf(sw).floatValue();
float height = Float.valueOf(sh).floatValue();
float area = (float)Math.PI*(width/2)*(height/2);
System.out.println("Ellipse : Width = " + width +
" Height = " + height +
" Area = " + area);
}
else if(localName.equals("rectangle"))
{
String sh = attributes.getValue("h");
String sw = attributes.getValue("w");
float width = Float.valueOf(sw).floatValue();
float height = Float.valueOf(sh).floatValue();
float area = width * height;
System.out.println("Rectangle : Width = " + width +
" Height = " + height +
" Area = " + area);
}
}
public static void main(String[] args)
{
try{
SaxFigures SAXHandler = new SaxFigures();
SAXParser parser = new SAXParser();
parser.setContentHandler(SAXHandler);
parser.setErrorHandler(SAXHandler);
parser.parse(args[0]);
}
catch(Exception e){
e.printStackTrace(System.err);
}
}
}