Python Minidom-如何遍历属性,并获取它们的名称和值



我想遍历dom节点的所有属性,并获得名称和值

我试过这样的东西(文档对此不是很详细,所以我猜了一点):

for attr in element.attributes:
    attrName = attr.name
    attrValue = attr.value
  1. for循环甚至没有启动
  2. 一旦循环开始工作,如何获取属性的名称和值

环路错误:

for attr in element.attributes:
  File "C:Python32libxmldomminidom.py", line 553, in __getitem__
    return self._attrs[attname_or_tuple]
 KeyError: 0

我是Python的新手,请温柔

有一种简单高效的方法(也是蟒蛇式的?)

#since items() is a tUple list, you can go as follows :
for attrName, attrValue in element.attributes.items():
    #do whatever you'd like
    print "attribute %s = %s" % (attrName, attrValue)

如果你试图实现的是将那些不方便的属性NamedNodeMap转移到一个更可用的字典中,你可以按照以下进行

#remember items() is a tUple list :
myDict = dict(element.attributes.items())

参见http://docs.python.org/2/library/stdtypes.html#mapping-dict类型更准确地说是一个例子:

d = dict([('two', 2), ('one', 1), ('three', 3)])

好的,在看了这个(有点小的)文档之后,我猜测以下解决方案会成功

#attr is a touple apparently, and items() is a list
for attr in element.attributes.items():
    attrName = attr[0] 
    attrValue = attr[1]

属性返回一个NamedNodeMap,它的行为很像字典,但实际上不是字典。请尝试在attributesiteritems()上循环。(请记住,在常规dict上循环无论如何都会在键上循环,所以您的代码在任何情况下都不会像预期的那样工作。)

相关内容

  • 没有找到相关文章

最新更新