Seite 1 von 1

SAX: String parsen

Verfasst: Montag 2. August 2004, 11:24
von RainBowBender
Hallo, wie kann ich mit Sax einen String parsen?

Code: Alles auswählen

parser = xml.sax.make_parser()
parser.setContentHandler(xml.sax.handler.ContentHandler())
parser.setFeature(xml.sax.handler.feature_namespaces,0)
parser.parse("<test>Hallo</test>")
Geht schließlich nicht!

Verfasst: Montag 2. August 2004, 11:35
von genrich
Was willst du genau machen???

Verfasst: Montag 2. August 2004, 12:38
von Dookie
versuchs mal so:

Code: Alles auswählen

parser = xml.sax.make_parser()
parser.setContentHandler(xml.sax.handler.ContentHandler)
parser.setFeature(xml.sax.handler.feature_namespaces,0)
parser.parse("<test>Hallo</test>")
Ist aber nicht getestet.

setContentHandler erwartet eine Funktion, nicht das Ergebnis der Funktion also ohne ()!


Gruß

Dookie

Verfasst: Montag 2. August 2004, 14:02
von RainBowBender
Dookie hat geschrieben:versuchs mal so:

Code: Alles auswählen

parser = xml.sax.make_parser()
parser.setContentHandler(xml.sax.handler.ContentHandler)
parser.setFeature(xml.sax.handler.feature_namespaces,0)
parser.parse("<test>Hallo</test>")
Ist aber nicht getestet.

setContentHandler erwartet eine Funktion, nicht das Ergebnis der Funktion also ohne ()!
xml.sax.handler.ContentHandler ist eine Klasse, ich übergebe die instanz, normalerweise leitet man von der ab und überschreibt die Handler funktionen, dass ist schon so richtig. Mein Problem ist parser.parse, diese Funktion akzeptiert keine XML-Eingabe als String, sondern afaik ne URL oder eine Datei

Verfasst: Montag 2. August 2004, 15:11
von Milan
Hi. Hat denn der Parser keine Methode parseString ? Naja, wenn nicht machst du dir halt nen Buffer:

Code: Alles auswählen

import cStringIO
parser.parse(cStringIO.StringIO("<test>Hallo</test>"))

Verfasst: Dienstag 3. August 2004, 22:39
von RainBowBender
danke