> However if I try and put some of the surrounding text back in either by > concatenating strings or using multiple sys.stdout.write() calls I get > repetitions of the strings. > > if len(newchars)> 0: > output = ''.join(newchars) > sys.stdout.write("String read is '") > sys.stdout.write(output) > sys.stdout.write("'") > > > Start ELEMENT ='title' > String read is 'Der Einfluss kleiner naturnaher Retentionsma'String read is > '▀'S > tring read is 'nahmen in der Fl'String read is 'Σ'String read is 'che auf > den Ho > chwasserabfluss - Kleinr'String read is 'ⁿ'String read is 'ckhaltebecken -.' > End ELEMENT ='title'
Please read Fred Drake's answer again. SAX will split the data in the XML document into multiple pieces. You put your decoration ("String read is") around each piece. Multiple pieces -> multiple decorations. To solve this issue, collect all pieces in a global variable: output = u"" def characters(self, chars): global output output += chars def endElement(self, name): global output print "String read is", output.encode("latin-1") output = u"" You could also chose to make output an attribute of self. Regards, Martin _______________________________________________ XML-SIG maillist - XML-SIG@python.org http://mail.python.org/mailman/listinfo/xml-sig