from XMLStreamReader import XMLStreamReader import sys def compact(xmlsr,indent): if xmlsr.isStartElement(): sys.stdout.write(xmlsr.getLocalName()+'[') indent += (len(xmlsr.getLocalName())+1)*" " count = xmlsr.getAttributeCount() for i in range(count): if i>0: sys.stdout.write(indent) sys.stdout.write('@'+xmlsr.getAttributeLocalName(i)+ '['+xmlsr.getAttributeValue(i)+']') first = count==0 while True: xmlsr.next() while xmlsr.isWhiteSpace():xmlsr.next() if xmlsr.isEndElement():break; if first: first=False else: sys.stdout.write(indent) compact(xmlsr,indent); sys.stdout.write(']') elif xmlsr.isCharacters(): sys.stdout.write(xmlsr.getText().strip()) xmlsr = XMLStreamReader(sys.stdin) xmlsr.next() while not xmlsr.isStartElement():xmlsr.next() compact(xmlsr,"\n") sys.stdout.write("\n")