XML Ausgabe in Datei speichern

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
Hanman
User
Beiträge: 48
Registriert: Mittwoch 31. März 2004, 12:24
Kontaktdaten:

Hallo,
ich möchte mit SAX einige Daten aus einer XML Datei auslesen und in einer anderen speichern. Dafür nutze ich folgende Funktion:

Code: Alles auswählen

  
 def characters(self, characters):
        if self.inPage:
            f = open(self.titel,"w")
            f.write(characters.encode('iso-8859-15')) 
        elif self.inTitel:
            self.titel = characters
Wenn ich das ganze allerdings ausführe kommt folgende Fehlermeldung:
Traceback (most recent call last):
File "D:\wikipedia\wiki.py", line 12, in -toplevel-
saxparser.parse("wiki.xml")
File "G:\Python24\lib\xml\sax\expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "G:\Python24\lib\xml\sax\xmlreader.py", line 123, in parse
self.feed(buffer)
File "G:\Python24\lib\xml\sax\expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "D:\wikipedia\handlers.py", line 25, in characters
f.write(characters.encode('iso-8859-15'))
File "G:\Python24\lib\encodings\iso8859_15.py", line 18, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2013' in position 8: character maps to <undefined>
Woran kann das liegen?

Viele Grüße
Hanman[/code]
'Ich liebe es wenn ein Plan funktioniert'
BlackJack

Das liegt daran das es in ISO-8859-15 keinen `EN DASH` gibt, der aber in der Unicode-Zeichenkette vorkommt.

Code: Alles auswählen

In [7]: unicodedata.name(u'\u2013')
Out[7]: 'EN DASH'
Hanman
User
Beiträge: 48
Registriert: Mittwoch 31. März 2004, 12:24
Kontaktdaten:

Heyho,
danke, mit UTF-8 gehts!
'Ich liebe es wenn ein Plan funktioniert'
Antworten