[Python-de] xml mit Umlauten parsen

Mathias Uebel mathias.uebel at meeloon.de
Mo Mär 17 17:39:50 UTC 2008


Hallo Chris,

Christopher Arndt schrieb:
> Hallo Mathias,
>
> Mathias Uebel schrieb:
>   
>> Diez B. Roggisch schrieb:
>>     
>>> wo genau bitte kommt denn der Fehler? beim erzeugen des DOM? Oder in code den 
>>> du uns nicht zeigst?
>>>   
>>>       
>> Ja, genau; in dem Teil, der jetzt kommt:
>>
>> def liesText(pretext, knoten):
>>     for k in knoten.childNodes:
>>         if k.nodeType == k.TEXT_NODE:
>>             print pretext, k.nodeValue.strip()
>>     
>
> In der letzen Zeile liegt der Fehler: XML-Parser liefern im Allgemeinen 
> immer Unicode-Objekte zurück. Du versuchst, den Unicode-String 
> (k.nodeValue) auf der Console auszugeben. Dabei wir der Unicode-String 
> in das Encoding der Konsole umgewandelt. Welches das ist sagt dir 
> sys.stdout.encoding.
>
> Du solltest den Unicode-String vor der Ausgabe manuell in das gewünschte 
> Encoding umwandeln. Das ist generell nötig bei der Benutzung von 
> Unicode-Objekten, i.e.
>
>      print k.nodeValue.encode('<encoding>')
>
> Natürlich muss das Zielencoding die im Unicode verwendeten Zeichen auch 
> unterstützen. Für europäische Sprachen ist das meistens entweder latin1 
> oder utf-8.
>
> Siehe auch:
>
>      http://wiki.python.de/Unicode
>
> Chris
>
>   
Vielen Dank für Deine Unterstützung.
Ja, das hat funktioniert.

Mathias