parsing multiple root element XML into text

Stefan Behnel stefan_ml at behnel.de
Fri May 9 05:13:51 EDT 2014


Chris Angelico, 09.05.2014 11:02:
> On Fri, May 9, 2014 at 6:59 PM, Percy Tambunan wrote:
>> Hai, I would like to parse this multiple root element XML
> 
> Easy fix might be to wrap it in <root> and </root>, which will give
> you a new root.

ElementTree's XMLParser() can be use efficiently for this. Something like
this should work:

    from xml.etree.ElementTree import XMLParser

    parser = XMLParser()
    parser.feed(b'<root>')
    parser.feed(real_input_data)
    parser.feed(b'</root>')
    root = parser.close()

    for subtree in root:
        ...

Stefan





More information about the Python-list mailing list