// Program to get the current temperature from interceptvector.com
// Robert Burns, Diablo Valley College, Computer Science Department 5/3/04
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
public class MySaxHandler
{
public static void main(String[] argv) throws Exception
{
DefaultHandler handler = new DefaultHandler()
{
private String temp; // degrees F
private String sky; // e.g, Mostly Sunny
private String city;
private String lastElement;
public void characters(char[] chars, int start, int length)
{
if (lastElement.equals("Temprature") && (temp == null))
temp = new String(chars, start, length);
if (lastElement.equals("Forecast") && (sky == null))
sky = new String(chars, start, length);
if (lastElement.equals("Location") && (city == null))
city = new String(chars, start, length);
}
public void endDocument(){}
public void endElement(String namespaceURI, String localName, String qName){}
public void endPrefixMapping(String prefix){}
public void ignorableWhitespace(char[] ch, int start, int length){}
public void processingInstruction(String target, String data){}
public void setDocumentLocator(Locator locator){}
public void skippedEntity(String name){}
public void startDocument(){}
public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
{
lastElement = qName;
}
public void startPrefixMapping(String prefix, String uri){}
public String toString()
{
return "In " + city + ", it's " + temp + " degrees Fahrenheit and " + sky + " skies";
}
};
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
saxParser.parse("http://www.ejse.com/WeatherService/Service.asmx/GetExtendedWeatherInfo?zipCode=94523", handler);
System.out.println(handler);
}
}
|