【问题标题】:Minidom:Get all the attributes of a selected node?Minidom:获取选定节点的所有属性?
【发布时间】:2012-09-22 11:34:41
【问题描述】:

我递归遍历XML中的所有节点:

def verify_elements_children(root):
    if root.childNodes:
        for node in root.childNodes:
            if node.nodeType == node.ELEMENT_NODE:
               if node.tagName in config_elements_children[node.parentNode.tagName]:
#                  print node.toxml()
                   verify_elements_children(node)

但是我不知道如何获取选中的node的所有属性名称?

【问题讨论】:

  • 我看不出这个问题与代码有什么关系。代码遍历元素,但您似乎想检查属性
  • @phihag 我想获取当前节点的属性,而不是xml中的所有属性,所以从这个意义上说我想知道如何从node对象中获取所有属性,它有与在这种情况下我需要答案的问题有关。
  • 附带说明 -- 目前使用 mindom 的理由非常少 -- 如果您使用 elementtree 代替,您的问题可能会更容易解决 (docs.python.org/library/xml.etree.elementtree.html )
  • @jsbueno 每个人都推荐 elementree 而不是 minidom,这将是改变这一切的下一步,但我已经用 minidom 写了一些东西

标签: python python-2.7 xmlnode minidom


【解决方案1】:

您可以简单地访问attributes 属性,这是一个NamedNodeMap,您可以在其上调用items 来获取字符串键和值:

import xml.dom.minidom
n = xml.dom.minidom.parseString('<n a="1" b="2" />').documentElement
attrs = dict(n.attributes.items())
assert attrs == {'a': '1', 'b': '2'}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-06-05
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多