попробуйте этот. только проблема Я не использую атрибуты (потому что мне это не нравится) dict2xml на pynuggets.wordpress.com dict2xml on activestate
from xml.dom.minidom import Document
import copy
class dict2xml(object):
doc = Document()
def __init__(self, structure):
if len(structure) == 1:
rootName = str(structure.keys()[0])
self.root = self.doc.createElement(rootName)
self.doc.appendChild(self.root)
self.build(self.root, structure[rootName])
def build(self, father, structure):
if type(structure) == dict:
for k in structure:
tag = self.doc.createElement(k)
father.appendChild(tag)
self.build(tag, structure[k])
elif type(structure) == list:
grandFather = father.parentNode
tagName = father.tagName
grandFather.removeChild(father)
for l in structure:
tag = self.doc.createElement(tagName)
self.build(tag, l)
grandFather.appendChild(tag)
else:
data = str(structure)
tag = self.doc.createTextNode(data)
father.appendChild(tag)
def display(self):
print self.doc.toprettyxml(indent=" ")
if __name__ == '__main__':
example = {'auftrag':{"kommiauftragsnr":2103839, "anliefertermin":"2009-11-25", "prioritaet": 7,"ort": u"Huecksenwagen","positionen": [{"menge": 12, "artnr": "14640/XL", "posnr": 1},],"versandeinweisungen": [{"guid": "2103839-XalE", "bezeichner": "avisierung48h","anweisung": "48h vor Anlieferung unter 0900-LOGISTIK avisieren"},]}}
xml = dict2xml(example)
xml.display()
Вы должны быть в состоянии перебирать элементы combobox.items и просто использовать stringcollection.Add() для добавления строки в коллекцию.
Метод tostring будет работать так, как описано здесь:
Хотя ComboBox обычно используется для отображения текстовых элементов, вы можете добавить любой объект в ComboBox. Как правило, представление объекта в ComboBox является строка возвращаемая методом ToString этого объекта методом ToString. Если вы хотите, чтобы вместо этого отображался член объекта, выберите член, который будет отображаться, установив свойство DisplayMember на имя соответствующего члена. Вы также можете выбрать член объекта, который будет представлять значение, возвращаемое объектом, установив свойство ValueMember свойство. Для получения дополнительной информации см. ListControl.
Так что что-то вроде:
Foreach(object o in combobox.items)
{
//might need to access a datamember of the combobox's item if more complex solution is required, but this will probably do
stringcollection.Add(o.ToString);
}