import com.webobjects.foundation.*; import com.webobjects.eocontrol.*; import java.io.*; import org.xml.sax.*; import org.xml.sax.helpers.DefaultHandler; public class parsingClass extends DefaultHandler { public void startElement(String namespace, String localname, String qname, Attributes atts) { if ( qname.equals("item") ) { String id = ""; String data = ""; String measurementTypeId = ""; String timeTaken = ""; // slurp all the attributes to java variables for (int i=0; i < atts.getLength(); i++) { if (atts.getQName(i).equals("id")) { id = atts.getValue(i); } else if (atts.getQName(i).equals("data")) { data = atts.getValue(i); } else if (atts.getQName(i).equals("typeId")) { measurementTypeId = atts.getValue(i); } else if (atts.getQName(i).equals("time")) { timeTaken = atts.getValue(i); } } // if an item has a blank ID we should add it to the database if ( id.equals("") ) { // create a data item and add it to the database System.out.println("Adding data item to the database"); EOClassDescription dataDesc = EOClassDescription.classDescriptionForEntityName("MeasuredData"); EOEditingContext editingContext = new EOEditingContext(); EOGenericRecord newDataItem = new EOGenericRecord(dataDesc); newDataItem.takeValueForKey(data, "data"); newDataItem.takeValueForKey(measurementTypeId, "measurementTypeId"); NSTimestampFormatter formatter=new NSTimestampFormatter("%Y-%m-%d %H:%M:%S %z"); try { newDataItem.takeValueForKey( (NSTimestamp)formatter.parseObject(timeTaken), "timeTaken" ); } catch (java.text.ParseException e) { System.out.println("error parsing timeTaken date"); } editingContext.insertObject(newDataItem); editingContext.saveChanges(); } } } }