.set()方法不在Python的xml.etree库中?

时间:2011-06-13 18:27:53

标签: python xml xml.etree

使用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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您正在get()的{​​{1}}成员上呼叫set()attribElement是一个普通的旧Python字典,没有attrib函数。您链接的文档适用于实际set()对象本身的set()函数。

要在Element成员中设置值,您可以使用:

attrib

如果您想改用elem_line.attrib['r'] = smpl_data[linenum][2]

Element