OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: XML parsing memory overhead concerns

[ Lists Home | Date Index | Thread Index ]
  • From: Paul Miller <stele@fxtech.com>
  • To: "Clark C. Evans" <clark.evans@manhattanproject.com>, James Clark <jjc@jclark.com>, xml-dev <xml-dev@ic.ac.uk>
  • Date: Sat, 18 Dec 1999 08:02:36 -0500

> When I get to the handler, I'd like to write this:
> 
> void PointHandler(XML::Element &elem, Point *point)
> {
>         // "pull" a chunk of element data, but it'll automatically
>         // stop when it gets to the end of the element (it stops
>         // when it sees </Point>)
>         char buf[40];
>         elem.GetData(buf, sizeof(buf));
>         sscanf(buf, "%dx%d", &point->x, &point->y);
> }
> 
> For some reason I couldn't figure out how to make this work, because
> with expat I might have hit the element but not necessary gotten to the
> character data handler.

I remembered why I couldn't get this part to work. Suppose (using expat)
I get to the <Point> element. So far I can build the tree down to this
point, so when I see <Point> I look in the handler list for that subtree
and call the callback for the Point element. Now in PointHandler, the
code wants to pull the element data. I can't go back into expat and
parse some more at this point, getting called back with expat's
CharacterData handler, fill my buffer, and fall back out to
PointHandler.

But this brings up a question: does expat buffer the entire character
data itself? If it does, perhaps I could delay the call to PointHandler
until after the expat character data handler has been called. I can save
a copy of that pointer away in my Element list, and only call the user
code when I see the end element tag.

Does this sound workable?

--
Paul Miller - stele@fxtech.com

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS