[XML-SIG] Parsing XML data from a stream where several XML elements follow?

Stephane Bortzmeyer bortzmeyer@nic.fr
Wed, 18 Dec 2002 10:07:49 +0100


On Tue, Nov 26, 2002 at 04:25:38PM +0100,
 Stephane Bortzmeyer <bortzmeyer@nic.fr> wrote 
 a message of 20 lines which said:

> I'm writing a simple XML Internet program which must be able to read
> and parse successive XML elements coming on the same TCP stream (I did
> not write the protocol so changing this is not an option).
> 
> If I write simple code like:
> 
>         read_channel = self.socket.makefile('r')
>         reader = Sax2.Reader()
>         reply = reader.fromStream(read_channel)
> 
> The fromStream method is stalled even after a complete XML element was
> read because it waits for the channel to close. 
> 
> Is there a way to tell fromStream (which seems poorly documented) to
> yield a result after the first complete element (or after a syntax
> error)? Or is there a better way to read successive XML elements?

Well, apparently noone found a simple solution. I plan to SAX the
stream first to recognize the beginning and ending of the top-level
elements and then to hand them on to a DOM builder :-(