from xml.etree.cElementTree import XMLParser
def parse_multiple(lines):
for line in lines:
parser = XMLParser()
parser.feed("<root>") # start of xml document
while line.strip(): # while non-blank line
parser.feed(line) # continue xml document
line = next(lines, "") # get next line
parser.feed("</root>") # end of xml document
yield parser.close() # yield root Element of the xml tree
import sys
import xml.etree.cElementTree as etree
for root in parse_multiple(sys.stdin):
etree.dump(root)
ZnJvbSB4bWwuZXRyZWUuY0VsZW1lbnRUcmVlIGltcG9ydCBYTUxQYXJzZXIKCmRlZiBwYXJzZV9tdWx0aXBsZShsaW5lcyk6CiAgICBmb3IgbGluZSBpbiBsaW5lczoKICAgICAgICBwYXJzZXIgPSBYTUxQYXJzZXIoKQogICAgICAgIHBhcnNlci5mZWVkKCI8cm9vdD4iKSAgICAgICMgc3RhcnQgb2YgeG1sIGRvY3VtZW50CiAgICAgICAgd2hpbGUgbGluZS5zdHJpcCgpOiAgICAgICAgIyB3aGlsZSBub24tYmxhbmsgbGluZQogICAgICAgICAgICBwYXJzZXIuZmVlZChsaW5lKSAgICAgICMgY29udGludWUgeG1sIGRvY3VtZW50CiAgICAgICAgICAgIGxpbmUgPSBuZXh0KGxpbmVzLCAiIikgIyBnZXQgbmV4dCBsaW5lCiAgICAgICAgcGFyc2VyLmZlZWQoIjwvcm9vdD4iKSAgICAgIyBlbmQgb2YgeG1sIGRvY3VtZW50CiAgICAgICAgeWllbGQgcGFyc2VyLmNsb3NlKCkgIyB5aWVsZCByb290IEVsZW1lbnQgb2YgdGhlIHhtbCB0cmVlCgoKaW1wb3J0IHN5cwppbXBvcnQgeG1sLmV0cmVlLmNFbGVtZW50VHJlZSBhcyBldHJlZQoKZm9yIHJvb3QgaW4gcGFyc2VfbXVsdGlwbGUoc3lzLnN0ZGluKToKICAgIGV0cmVlLmR1bXAocm9vdCk=
Jmx0O2EmZ3Q7CiAgICAmbHQ7YiZndDsKICAgICAgIC4uLi4KICAgICZsdDsvYiZndDsKICAgICZsdDtjJmd0OwogICAgICAgLi4uLgogICAgJmx0Oy9jJmd0OwombHQ7L2EmZ3Q7CiZsdDtkJmd0OyZsdDtjJmd0OyZsdDsvYyZndDsmbHQ7L2QmZ3Q7CgombHQ7YSZndDsKICAgICZsdDtiJmd0OwogICAgICAgLi4uLgogICAgJmx0Oy9iJmd0OwogICAgJmx0O2MmZ3Q7CiAgICAgICAuLi4uCiAgICAmbHQ7L2MmZ3Q7CiZsdDsvYSZndDsKJmx0O2QmZ3Q7Jmx0O2MmZ3Q7Jmx0Oy9jJmd0OyZsdDsvZCZndDsKCiZsdDthJmd0OwogICAgJmx0O2ImZ3Q7CiAgICAgICAuLi4uCiAgICAmbHQ7L2ImZ3Q7CiAgICAmbHQ7YyZndDsKICAgICAgIC4uLi4KICAgICZsdDsvYyZndDsKJmx0Oy9hJmd0OwombHQ7ZCZndDsmbHQ7YyZndDsmbHQ7L2MmZ3Q7Jmx0Oy9kJmd0Ow==
<a>
<b>
....
</b>
<c>
....
</c>
</a>
<d><c></c></d>
<a>
<b>
....
</b>
<c>
....
</c>
</a>
<d><c></c></d>
<a>
<b>
....
</b>
<c>
....
</c>
</a>
<d><c></c></d>