Wie richtig analysiert, utf-8 xml mit ElementTree?

Ich brauche Hilfe um zu verstehen, warum das Parsen meiner xml-Datei* mit xml.etree.ElementTree produziert den folgenden Fehler.

*Meine test xml-Datei enthält Arabische Zeichen.

Aufgabe:
Öffnen und analysieren utf8_file.xml Datei.

Mein Erster Versuch:

import xml.etree.ElementTree as etree
with codecs.open('utf8_file.xml', 'r', encoding='utf-8') as utf8_file:
    xml_tree = etree.parse(utf8_file)

Ergebnis 1:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 236-238: ordinal not in range(128)

Mein zweiter Versuch:

import xml.etree.ElementTree as etree
with codecs.open('utf8_file.xml', 'r', encoding='utf-8') as utf8_file:
    xml_string = etree.tostring(utf8_file, encoding='utf-8', method='xml')
    xml_tree  = etree.fromstring(xml_string)

Ergebnis 2:

AttributeError: 'file' object has no attribute 'getiterator'

Bitte erläutern Sie den Fehler oben und Kommentar auf die mögliche Lösung.

InformationsquelleAutor minerals | 2014-02-11

Schreibe einen Kommentar