Accessing XMLNS attribute with Python Elementree?

后端 未结 3 1602
无人及你
无人及你 2020-12-08 21:29

How can one access NS attributes through using ElementTree?

With the following:



        
3条回答
  •  执笔经年
    2020-12-08 21:35

    I think element.tag is what you're looking for. Note that your example is missing a trailing slash, so it's unbalanced and won't parse. I've added one in my example.

    >>> from xml.etree import ElementTree as ET
    >>> data = ''''''
    >>> element = ET.fromstring(data)
    >>> element
    
    >>> element.tag
    '{http://www.foo.net/a}data'
    >>> element.attrib
    {'category': 'ABS', 'date': '2009-12-22', 'book': '1'}
    

    If you just want to know the xmlns URI, you can split it out with a function like:

    def tag_uri_and_name(elem):
        if elem.tag[0] == "{":
            uri, ignore, tag = elem.tag[1:].partition("}")
        else:
            uri = None
            tag = elem.tag
        return uri, tag
    

    For much more on namespaces and qualified names in ElementTree, see effbot's examples.

提交回复
热议问题