get_xml_iterator#

astropy.utils.xml.iterparser.get_xml_iterator(source, _debug_python_based_parser=False)[source]#

Returns an iterator over the elements of an XML file.

The iterator doesn’t ever build a tree, so it is much more memory and time efficient than the alternative in cElementTree.

Parameters:
sourcepath-like object, file-like (readable), or callable()

Handle that contains the data or function that reads it. If a function or callable object, it must directly read from a stream. Non-callable objects must define a read method.

Returns:
partsiterator

The iterator returns 4-tuples (start, tag, data, pos):

  • start: when True is a start element event, otherwise an end element event.

  • tag: The name of the element

  • data: Depends on the value of event:

    • if start == True, data is a dictionary of attributes

    • if start == False, data is a string containing the text content of the element

  • pos: Tuple (line, col) indicating the source of the event.