[Python-de] xml-Problem

"Martin v. Löwis" martin at v.loewis.de
Son Feb 12 20:17:12 CET 2006


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
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : a.py
Dateityp    : text/x-python
Dateigröße  : 358 bytes
Beschreibung: nicht verfügbar
URL         : http://python.net/pipermail/python-de/attachments/20060212/030c438d/a.py
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : bfabhandler.py
Dateityp    : text/x-python
Dateigröße  : 1431 bytes
Beschreibung: nicht verfügbar
URL         : http://python.net/pipermail/python-de/attachments/20060212/030c438d/bfabhandler.py