Thread unbekanntes XML-File in CSV
(8 answers)
Opened by mordur. at 2014-01-16 14:45
Hey, das ist cool!
Noch zu meinen Versuchen: Ich hab' jetzt doch geschafft, XML::Twig bei mir zu installieren, komme aber noch nicht so recht damit klar. XML-Verarbeitung hatte ich sonst nur in Python probiert. Meist bin ich diesen Weg gegangen, mit einer rekursiven Funktion. Das Modul dort soll auch nicht mehr so recht das sein, was man heute üblicherweise verwendet. Aber ich bin damit immer noch am besten zurechtgekommen. Es unterscheidet im XML unter anderem "Element-Nodes" und "Text-Nodes". Zu dem Beispiel bekomme ich eine Ausgabe mit: Code (python): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #!/usr/bin/env python # coding: iso-8859-1 import xml.dom.minidom xmlstring = """<user> <firstName>Sebastian</firstName> <telephoneNumber>100</telephoneNumber> <associatedDevices> <device>SEP111111111111</device> <device>CSFBLA</device> <device>SEP222222222222</device> </associatedDevices> <primaryExtension> <pattern>100</pattern> <routePartitionName>PT_Intern</routePartitionName> </primaryExtension> <associatedGroups> <userGroup> <name>Standard CTI Enabled</name> <userRoles> <userRole>Standard CTI Enabled</userRole> </userRoles> </userGroup> <userGroup> <name>Standard CCM End Users</name> <userRoles> <userRole>Standard CCM End Users</userRole> <userRole>Standard CCMUSER Administration</userRole> </userRoles> </userGroup> </associatedGroups> </user>""" suitablestring = "" for i in xmlstring: i = i.strip() suitablestring += i dom = xml.dom.minidom.parseString(suitablestring) def dokument(domina): for node in domina.childNodes: if node.nodeType == node.ELEMENT_NODE: print node.nodeName if node.nodeType == node.TEXT_NODE: print "Value: " + node.nodeValue.strip() print dokument(node) dokument(dom) Ausgabe wäre dann: Code: (dl
)
1 user Das ist plausibel, aber ich wüßte jetzt nicht, wie man daraus CSV in einer Tabelle mit jeweils einer Überschrift pro Spalte machen sollte, eben wegen der Verschachtelungen. |