我想遍历dom节点的所有属性,并获得名称和值
我试过这样的东西(文档对此不是很详细,所以我猜了一点):
for attr in element.attributes:
attrName = attr.name
attrValue = attr.value
- for循环甚至没有启动
- 一旦循环开始工作,如何获取属性的名称和值
环路错误:
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
,它的行为很像字典,但实际上不是字典。请尝试在attributes
的iteritems()
上循环。(请记住,在常规dict上循环无论如何都会在键上循环,所以您的代码在任何情况下都不会像预期的那样工作。)