Get attribute names and values from ElementTree

后端 未结 3 1891
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-08 05:28

I have an XML element with several attributes. I\'ve been using the ElementTree package.

After I\'ve parsed a tree from an xml fil

相关标签:
3条回答
  • 2021-02-08 06:15

    The attrib attribute of an ElementTree element (like the root returned by getroot) is a dictionary. So you can do, for example:

    from xml.etree import ElementTree
    tree = ElementTree.parse('test.xml')
    root = tree.getroot()
    print root.attrib
    

    which will output, for your example

    {'a': '1', 'b': '2', 'c': '3'}
    
    0 讨论(0)
  • 2021-02-08 06:21

    Each Element has an attribute .attrib that is a dictionary; simply use it's mapping methods to ask it for it's keys or values:

    for name, value in root.attrib.items():
        print '{0}="{1}"'.format(name, value)
    

    or

    for name in root.attrib:
        print '{0}="{1}"'.format(name, root.attrib[name])
    

    or use .values() or any of the other methods available on a python dict.

    To get an individual attribute, use the standard subscription syntax:

    print root.attrib['a']
    
    0 讨论(0)
  • 2021-02-08 06:22

    Some nice loop you can use it will get for each element of the xmlObject it's tag, text and attribute it will work for 2 levels XML, it's not the best way to iterate but it can be useful for simple things...

    for headTag in xmlObject.getchildren():
        print headTag.tag, headTag.text, headTag.attrib
        for bodyTag in headTag.getchildren():
            print "\t", bodyTag.tag, bodyTag.text, bodyTag.attrib
    
    0 讨论(0)
提交回复
热议问题