[
Lists Home |
Date Index |
Thread Index
]
> At 20:44 20.11.2003, you wrote:
>
> >Are you asking how to update a document in the middle?
>
> Yes. That's something I was after with my bubbling ;-)
>
> >I would rather write the document out again, firing SAX events
> >to a SAX writer, the modifcations being achieved by firing
> >different events (in some parts) than those received from the parser
>
> Yes that works sometimes. But for example getting some values
> from xml doc into textboxes waiting to be modified by the user and then
> writing values back to xml doc isn't possible with this approach I believe.
It should, as popping up a dialog to the user should block the call-back.
> I was thinking this 2 parse (and 2 serializing operations with SAX writer
> (horror!)) approach more and
> now I think it's possible to reduce it 1 parse with serializing to
> temporary file
> keeping track of binding positions, then perform only writing (not parsing)
> temporary file with updates into final document.
>
> Something like:
>
> serialize to file until binding section is found - keeping track of
> serialized bytes
> bind section to variables - don't serialize - mark this point
> serialize to file until binding section is found - keeping track of
> serialized bytes
> bind section to variables - don't serialize - mark this point
> serialize to file etc.
>
> modify variables (wait input from the user)
>
> perform update writing previous created file to another file:
> - write until mark point or eof
> - call setter method when mark point is found
> - write until mark point or eof
> - call setter method when mark point is found
> - etc.
>
> * setter method is setbook() like method in my pseudo code
Yes, this should work. But what if you could stop/interrupt the SAX
parser in the desired event (call-back), wait for user input, store
input in some object, resume the parser - using that info to generate
your modified output with the attached SAX writer, then stop at
the next point where user input is required, and so on ...
One pass only, no temporary file.
Karl
|