XML mit xml.sax in Python-Dateityp überführen
Verfasst: Dienstag 10. April 2007, 13:01
Hallo allerseits
ich habe mich mittlerweile etwas in Python eingearbeitet und will mich jetzt an einem etwas größeren Programm versuchen.
Ich will mit xml.sax eine XML-Datei lesen, das aus dictionaries und key-value-Paaren aufgebaut ist, z.B:
------
-------
Um das in eine Python-Dateityp zu überführen, will ich das als Array repräsentieren, etwa so:
{'version':'1.0.1', {1:{'Name':'alan'}, 2:{'Name':'huber'}}}
Weiß jetzt allerdings nicht so recht weiter, wie ich das umsetzen soll:
Hier bin ich momentan:
Die einzigen Parameter, die _handleValues() hat, sind currentElement (z.B. 'string') und content (z.B. 'Name'), also nie Schlüssel und Wert ('Name' und 'alan') auf einmal, denn attrs.getValue[name] liefert hier ja Blödsinn.
Ich weiß jetzt nicht, wie ich weitermachen soll.
Ich bin für jede Hilfe sehr dankbar
ich habe mich mittlerweile etwas in Python eingearbeitet und will mich jetzt an einem etwas größeren Programm versuchen.
Ich will mit xml.sax eine XML-Datei lesen, das aus dictionaries und key-value-Paaren aufgebaut ist, z.B:
------
Code: Alles auswählen
<dict>
<key>version</key><string>1.0.1</string>
<key>...
<dict>
<key>1</key>
<dict>
<key>Name</key><string>alan</string>
</dict>
<key>2</key>
<dict>
<key>Name</key><string>huber</string>
</dict>
</dict>
</dict>
Um das in eine Python-Dateityp zu überführen, will ich das als Array repräsentieren, etwa so:
{'version':'1.0.1', {1:{'Name':'alan'}, 2:{'Name':'huber'}}}
Weiß jetzt allerdings nicht so recht weiter, wie ich das umsetzen soll:
Hier bin ich momentan:
Code: Alles auswählen
from xml.sax import make_parser
from xml.sax.handler import ContentHandler
class Reader(ContentHandler):
def __init__(self):
self._currentElement = None
self._result = None
def startElement(self, name, attrs):
self.currentElement = name
def endElement(self, name):
pass
def characters(self, content):
self._handleValues(content)
def _handleValues(self, value):
doSomeMagic
Die einzigen Parameter, die _handleValues() hat, sind currentElement (z.B. 'string') und content (z.B. 'Name'), also nie Schlüssel und Wert ('Name' und 'alan') auf einmal, denn attrs.getValue[name] liefert hier ja Blödsinn.
Ich weiß jetzt nicht, wie ich weitermachen soll.
Ich bin für jede Hilfe sehr dankbar