pro mgffbrightkiteperson::printPlace compile_opt strictarr print, self.placeName print, self.displayLocation print, self.latitude + ', ' + self.longitude end pro mgffbrightkiteperson::displayPlace compile_opt strictarr map_set map_continents plots, self.longitude, self.latitude, psym=1, color='00ffff'x end pro mgffbrightkiteperson::characters, chars compile_opt strictarr if (self.insideName) then self.placeName = chars if (self.insideDisplayLocation) then self.displayLocation = chars if (self.insideLongitude) then self.longitude = chars if (self.insideLatitude) then self.latitude = chars end pro mgffbrightkiteperson::endElement, uri, loca, qname compile_opt strictarr case strlowcase(qname) of 'place': self.insidePlace = 0B 'name': if (self.insidePlace) then self.insideName = 0B 'display_location': if (self.insideDisplayLocation) then self.insideDisplayLocation = 0B 'longitude': if (self.insidePlace) then self.insideLongitude = 0B 'latitude': if (self.insidePlace) then self.insideLatitude = 0B else: endcase end pro mgffbrightkiteperson::startElement, uri, local, qname, attName, attValue compile_opt strictarr case strlowcase(qname) of 'place': self.insidePlace = 1B 'name': if (self.insidePlace) then self.insideName = 1B 'display_location': if (self.insidePlace) then self.insideDisplayLocation = 1B 'longitude': if (self.insidePlace) then self.insideLongitude = 1B 'latitude': if (self.insidePlace) then self.insideLatitude = 1B else: endcase end pro mgffbrightkiteperson__define compile_opt strictarr define = { MGffBrightkitePerson, inherits IDLffXMLSAX, $ placeName: '', $ displayLocation: '', $ longitude: '', $ latitude: '', $ insidePlace: 0B, $ insideName: 0B, $ insideDisplayLocation: 0B, $ insideLongitude: 0B, $ insideLatitude: 0B $ } end pro mg_whereismike compile_opt strictarr personParser = obj_new('MGffBrightkitePerson') personParser->parseFile, 'http://brightkite.com/people/mgalloy.xml', /url personParser->printPlace personParser->displayPlace obj_destroy, personParser end