Seite 1 von 1
libxml2?
Verfasst: Mittwoch 18. Januar 2006, 22:31
von beewee
Hi,
zuerst: Ich bin noch relativ neu bei Python, sorry, wenn ich irgendwas falsch mache.
Ich habe in einer XML-Datei folgendes:
Code: Alles auswählen
<irgendwasaussenrum>
<objekt>
<name>Objekt1</name>
<eigenschaft>irgendwas</eigenschaft>
</objekt>
<objekt>
<name>Objekt2</name>
<eigenschaft>nochwas</eigenschaft>
</objekt>
</irgendwasaussenrum>
jetzt möchte ich das so umwandeln:
Code: Alles auswählen
[{"name":"Objekt1", "eigenschaft":"irgendwas"}, {"name":"Objekt2", "eigenschaft":"nochwas"}]
könnt ihr mir bitte erklären, wie ich das schaffe? Ich durchsuche jetzt schon ewig irgendwelche englischen Anleitungen, aber ich kriegs nicht hin.
Danke für eure Bemühungen im Vorraus schonmal,
BeeWee
Verfasst: Mittwoch 18. Januar 2006, 22:45
von mitsuhiko
Hiho beewee:
Code: Alles auswählen
from xml.dom.minidom import parseString
def parseThis(doc):
def getTagValue(node, name):
return node.getElementsByTagName(name)[0].firstChild.nodeValue
for node in doc.getElementsByTagName('objekt'):
yield {
'name': getTagValue(node, 'name'),
'eigenschaft': getTagValue(node, 'eigenschaft')
}
if __name__ == '__main__':
doc = """
<irgendwasaussenrum>
<objekt>
<name>Objekt1</name>
<eigenschaft>irgendwas</eigenschaft>
</objekt>
<objekt>
<name>Objekt2</name>
<eigenschaft>nochwas</eigenschaft>
</objekt>
</irgendwasaussenrum>
"""
for line in parseThis(parseString(doc)):
print line
Hoffe das hilft.
Ausgabe:
Code: Alles auswählen
{'eigenschaft': u'irgendwas', 'name': u'Objekt1'}
{'eigenschaft': u'nochwas', 'name': u'Objekt2'}
Verfasst: Mittwoch 18. Januar 2006, 23:05
von beewee
man, blackbeard, du bist ja überall
Dein Code funktioniert perfekt, dankeschön (-;
Grüße
BeeWee
Verfasst: Mittwoch 18. Januar 2006, 23:15
von dejot
interessant. woher weiß man sowas wie das "from xml.dom.minidom import parseString"?
@beewee: heißt er nicht blackbird? schwarzer vogel, nicht schwarzer bart *g*
Verfasst: Mittwoch 18. Januar 2006, 23:43
von Gast
lol, ist hier halb ubuntuusers versammelt
@beewee: heißt er nicht blackbird? schwarzer vogel, nicht schwarzer bart *g*
^^
dass ich das falsch geschrieben hab, liegt daran, dass ich in einem Browsergame mal jemanden kannte, der Blackbeard hieß. Aber "Schwarzer Bart" ist doch auch schön
BeeWee
Verfasst: Donnerstag 19. Januar 2006, 03:50
von Joghurt
dejot hat geschrieben:interessant. woher weiß man sowas wie das "from xml.dom.minidom import parseString"?
Hieraus?
http://docs.python.org/lib/module-xml.dom.minidom.html
Verfasst: Donnerstag 19. Januar 2006, 06:55
von mitsuhiko
dejot hat geschrieben:interessant. woher weiß man sowas wie das "from xml.dom.minidom import parseString"?
In der Regel weiß man, was man in etwa tun will. Also ich wollte in etwas was mit XML machen. Also findet man in der Modulliste auf docs.python.org ein nettes xml modul. Und weils da so viele Parser gibt hab ich einfach den minidom Parser genommen. der Ist nämlich mit Abstand der einfachste und eine 1:1 Umsetzung vom w3c Standard.