yaxo problem/question

Rob Whitfield rob at customfun.com
Thu Jun 13 14:39:09 UTC 2002


Thanks Bijan,

I moved my processing of the document outside the parser and everything is 
fine now.

Cheers,
Rob

At 09:49 AM 6/13/2002 -0400, you wrote:
>On Thu, 13 Jun 2002, Rob Whitfield wrote:
>
> > Hi Karl,
> >
> > I don't understand your comment.  If I want an instance of an
> > OrderedCollection I do:
> >
> >          foo := OrderedCollection new.
>
>Sure, but you *don't* want an instance of the parser.
>
>At least, not to send #parseDocumentFrom: to.
>
>#parseDocumentFromFileNamed: is a class method. In SAXHandler (the
>superclass of XMLDOMParser) it returns an instance of a parser. That's
>because, I take it, conceputally the parser is acting as a "lazy
>stream" over the "parse" of the document.
>
>In XMLDOMParser, #parseDocuemntFrom: returns an instance of the
>*parsed* document.
>
>Check the code:
>
>         parseDocumentFrom: aStream
>            ^(super parseDocumentFrom: aStream) document
>
>This is very natural for DOM work, since you expect to work with the
>parsed document tree rather than a parser.
>
>If you want to manipulate the parser itself, I suggest looking at
>SAXHandler class>>parseDocumentFrom:
>
>parseDocumentFrom: aStream
>         | driver parser |
>         driver _ SAXDriver on: aStream.
>         driver validating: true.
>         parser _ self new driver: driver.
>         parser startDocument.
>         parser parseDocument.
>         ^parser
>
>As you can see, it takes a bit more set up. And then you'll probably just
>want to send "document' to this thing to get the full parsed document.
>
>If you want to generate a different tree than an XMLDocument, you should
>subclass SAXHandler (or XMLDOMParser if you want only a slightly different
>tree).
>
> > I can then add items to the collection using foo. How is XMLDOMParser
> > different?
>
>In one sense, isn't not different at all. But you *are* systematically
>misusing it. You seem to not understand the difference between class
>methods instance methods.
>
> >  Assuming you are right what would be the correct way of doing
> > what I want?
>
>It's still not clear to me what you want :)
>
>Cheers,
>Bijan Parsia.




More information about the Squeak-dev mailing list