Seite 1 von 1

XML Ausgabe in Datei speichern

Verfasst: Samstag 28. Oktober 2006, 09:35
von Hanman
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]

Verfasst: Samstag 28. Oktober 2006, 11:15
von 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'

Verfasst: Samstag 28. Oktober 2006, 13:10
von Hanman
Heyho,
danke, mit UTF-8 gehts!