ich stehe mal wieder auf dem Schlauch. Ich versuche momentan eine XML-Datei mit lxml einzulesen und mir Informationen zu den einzelnen Elementen ausgeben zu lassen. Die XML-Datei ist als utf-8 abgespeichert. Zumindest ist das in der Datei angegeben und sie sieht gut aus wenn ich sie mir als utf-8 in meinem Editor anzeigen lasse. Lese ich mir die Datei mit lxml ein und lasse sie mir den eingelesenen Baum folgendermaßen ausgeben:
Code: Alles auswählen
with open("test.xml", "r") as f:
tree = etree.parse(f)
print etree.tostring(tree, pretty_print=True, encoding="UTF-8")
Probleme bekomme ich erst wenn ich auf beispielsweise den Text eines Elements (sagt man das so?) zugreifen möchte der ein Unicode-Zeichen enthält.
bei einem Zugriff auf den Text eines Elements mit
Code: Alles auswählen
for elem in root.iterchildren():
print elem.tag, elem.text
File "test.py", line 18, in search_values
print elem.tag, elem.text
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb0' in position 3: ordinal not in range(128)
Wie kann ich mir die strings denn nu anzeigen lassen? Bisher habe ich immer versucht mit encode ``some_string.encode('utf-8')`` als bytestring darstellen zu lassen. Mitlerweile habe ich so viele Varianten ausprobiert - ich weiss gar nicht mehr wo ich anfangen soll.
Wenn mir jemand nen Tipp geben könnte wie ich weitermachen könnte wäre ich echt dankbar
Sebastian