On Jan 11, 7:26 pm, John Bokma <j...@castleamber.com> wrote: > amadain <mfmdev...@gmail.com> writes: > > I have an event log with 100s of thousands of entries with logs of the > > form: > > > <event eventTimestamp="2009-12-18T08:22:49.035" > > uniqueId="1261124569.35725_PFS_1_1340035961"> > > <result value="Blocked"/> > > <filters> > > <filter code="338" type="Filter_Name"> > > <diagnostic> > > <result value="Triggered"/> > > </diagnostic> > > </filter> > > <filter code="338" type="Filter_Name"> > > <diagnostic> > > <result value="Blocked"/> > > </diagnostic> > > </filter> > > </filters> > > </event> > > > I am using xml.sax to parse the event log. The trouble with the file > > above is when I parse for result value I get the last result value > > (Blocked from above). I want to get the result value triggered (the > > second in the event). > > > my code is as follows: > > > def startElement(self, name, attrs): > > if name == 'event': > > self.eventTime = attrs.get('eventTimestamp',"") > > self.eventUniqueId = attrs.get('uniqueId', "") > > if name == 'result': > > self.resultValue = attrs.get('value',"") > > return > > > def endElement(self, name): > > if name=="event": > > result= eval(self.filter) > > if result: > > ... > > > How do I get the result value I require when events have the same > > names like above? > > You have to keep track if you're inside a filters section, and keep > track of the filter elements (first, second, etc.) assuming you want the > result value of the first filter. > > -- > John Bokma > > Read my blog:http://johnbokma.com/ > Hire me (Perl/Python):http://castleamber.com/
how do I keep track? The first result value is outside a filters section and the rest are. Do you mean something like: def startElement(self, name, attrs): if name == 'event': self.eventTime = attrs.get('eventTimestamp',"") self.eventUniqueId = attrs.get('uniqueId', "") if name == 'result': self.resultValue = attrs.get('value',"") if name == filters: if name == 'result': self.resultValueF = attrs.get('value',"") return A -- http://mail.python.org/mailman/listinfo/python-list