xml.sax parsing elements with the same name

amadain mfmdevine at gmail.com
Mon Jan 11 16:24:14 EST 2010


On Jan 11, 9:03 pm, John Bokma <j... at castleamber.com> wrote:
> amadain <mfmdev... at gmail.com> writes:
> > On Jan 11, 7:26 pm, John Bokma <j... at castleamber.com> wrote:
> >> amadain <mfmdev... at gmail.com> writes:
> >> > <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>
> > 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
>
> I was thinking about something like:
>
> self.filterIndex = 0
>
> in startElement:
>
>     if name == 'filter':
>        self.filterIndex += 1
>        return
>     if name == 'result' and self.filterIndex == 1:
>        ...  = attrs.get('value', '')
>
> in EndElement
>
>    if name == 'filters':
>       self.filterIndex = 0
>
> If you want the result of the first filter in filters
>
> --
> John Bokma
>
> Read my blog:http://johnbokma.com/
> Hire me (Perl/Python):http://castleamber.com/e e

Thank you. I will try that



More information about the Python-list mailing list