[Python-de] xml-Problem

Joerg Krebs krebsj at cip.ifi.lmu.de
Son Feb 12 21:09:44 CET 2006


Am Sonntag, den 12.02.2006, 20:17 +0100 schrieb "Martin v. Löwis":
> Joerg Krebs wrote:
> > kann mir jemand mit meinem xml-parser helfen, ich hab da einen Wurm
> > drin, und weiss nicht wo er liegt.
> > als erwuenschter output soll folgendes rauskommen:
> [mehrere gname/orgname/sequence-Tripel]
> > im Moment ist der output nur:
> [ein gmane/orgname/sequence-Tripel, und zwar das letzte]
> 
> > saxparser = make_parser()
> > handler = bfabhandler.BfabHandler()
> > saxparser.setContentHandler(handler)
> > saxparser.parse(sys.argv[1])
> > 
> > if handler.isMatch:
> >     print ">%s %s" % (handler.gname,handler.orgname)
> >     print handler.sequence
> 
> Ich finde die Ausgabe nicht überraschend: Es gibt nur eine
> print-Anweisung, also kann auch nur ein Datensatz ausgegeben
> werden.
> 
> Kern des Problems ist, dass .parse() *alle* Daten verarbeitet
> und dann zurückkehrt. Dh. jedesmal, wenn GENOME kommt, wird
> self.orgname überschrieben.
> 
> Mein Lösungsvorschlag ist anbei.
> 
> Ciao,
> Martin

Hallo Martin,
vielen vielen Dank fuer die Hilfe.
Allerdings, hab ich im Mom noch das Problem, dass die Sequencen nun alle
zusammengehaengt werde (also, beim ersten identifier, den 1.sequenzteil,
beim 2ten Identifier den 1. + 2. Sequenzteil... usw...)

ich vermute, ich muss beim endtag von GENE den String von Sequence
wieder auf "" setzen, oder ?

mfg
	Joerg