1

致力于使用 Python 创建包含一些数据的 XML 文件。我正在尝试将字典中的值设置为列表中的数据。我将制作多行,这就是我以这种方式引用每个值的原因。多谢你们。这是我的代码:

from xml.etree import ElementTree as ET

root = ET.Element("painter")
root.set('version', '1.0')
linenum = 0
pointnum = 0

smpl_data = [[[20,40],(0,0,1,1)],[[10,50],(0,0,1,1)],[[78,89],(0,0,1,1)]]

while linenum <= len(smpl_data): #smpl_data change to self.lines
    elem_line = ET.SubElement(root,"line" + str(linenum), attrib={"r": "1", "g": "2", "b": "3", "a": "4"})
    print elem_line
    print elem_line.attrib.get("r")                       
    print elem_line.attrib.set("r", "smpl_data[linenum][2]")  
    # I get an attribute error: 'dict' object has no  attribute 'set'

虽然它清楚地显示在文档中......

http://docs.python.org/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.set

谢谢您的帮助。

4

1 回答 1

1

您正在调用get()set()attrib成员Elementattrib是一个没有set()函数的普通旧 Python 字典。您链接的文档适用set()于实际Element对象本身的功能。

要在成员中设置值,attrib您将使用:

elem_line.attrib['r'] = smpl_data[linenum][2]

如果你想Element改用:

elem_line.get('r')
elem_line.set('r', smpl_data[linenum][2])
于 2011-06-13T18:35:09.197 回答