ich unternehm grad erste Gehversuche mit xml.
Ich will für ein Vokabelabfrageprogramm die Dateien in xml-Format speichern.
Aussehen soll die Datei so.
Code: Alles auswählen
- <woerterbuch>
- <vokabel>
<deutsch>A</deutsch>
<griechisch>Α</griechisch>
<status>0</status>
<datum>2.1.2012</datum>
</vokabel>
[...]
Der Code zum Erzeugen:
Code: Alles auswählen
import xml.dom.minidom as dom
def _erstelle_vokabel(deutsch, griechisch, status, datum):
''' '''
tag_vokabel = dom.Element('vokabel')
tag_namen = ['deutsch', 'griechisch', 'status', 'datum']
tag_werte = [deutsch, griechisch, status, datum]
tags = [dom.Element(t) for t in tag_namen]
for name, wert, tag in zip(tag_namen, tag_werte, tags):
text = dom.Text()
text.data = str(wert)
tag.appendChild(text)
tag_vokabel.appendChild(tag)
return tag_vokabel
def schreibe_woerterbuch(d, dateiname):
tag_woerterbuch = dom.Element('woerterbuch')
for schluessel, wert in d.iteritems():
tag_vokabel = _erstelle_vokabel(schluessel, *wert)
tag_woerterbuch.appendChild(tag_vokabel)
baum = dom.Document()
baum.appendChild(tag_woerterbuch)
f = open(dateiname, "w")
baum.writexml(f, "", "\t", "\n")
f.close()
Ich bekomme als Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
File "<pyshell#102>", line 1, in <module>
schreibe_woerterbuch(d, 'testdaten.xml')
File "C:\Python26\PyProgramme\xml_gehversuche.py", line 45, in schreibe_woerterbuch
tag_vokabel = _erstelle_vokabel(schluessel, *wert)
File "C:\Python26\PyProgramme\xml_gehversuche.py", line 32, in _erstelle_vokabel
text.data = str(wert)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0391' in position 0: ordinal not in range(128)