SAX: String parsen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

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!
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

Was willst du genau machen???
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
[code]#!/usr/bin/env python
import this[/code]
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

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
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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>"))
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

danke
Antworten