On Thu, 2007-06-28 at 11:00 +0200, Stefan Behnel wrote:
> 
> kalyanasundaram wrote:
> > On Thu, 2007-06-28 at 09:10 +0200, Stefan Behnel wrote:
> >> kalyanasundaram s wrote:
> >>>   I need to parse a huge xml file for a specific set of nodes. Is there
> >>> any method like getElementByName is available in libxml. I could not
> >>> find it in the document. Does it exists with some other name?
> >>> Otherwise i will have to travel in the entire tree. It is inefficient.
> >> No it's not. It just depends on the implementation of getElementByName. :)
> >>
> >> You can always use XPath to find the tag. However, if your XML tree is 
> >> really
> >> so big (note that XPath is pretty fast, so I'd try it first) you may 
> >> consider
> >> building an index of the tree, i.e. some kind of data structure that maps 
> >> tag
> >> names to a list of node pointers.
> >>
> >> Note that there is also a hash map implementation in libxml2, see hash.c.
> >>
> >> Stefan
> > 
> >   Thanks for your information. I need to parse the xml file only once. 
> 
> Do you mean: parse it once, keep it in memory and keep doing lots of things
> with it? Or rather: parse it once, extract what you need and then throw it 
> away?
> 
Yeh, in my case parse it once and update few nodes and save it as
another document. Nothing more than that.

> In the first case: build an index. In the latter: Either read it in, traverse
> it and extract what you need (possibly with XPath), or read it in with SAX and
> extract what you need while parsing. Depends on whether you need a tree to
> know what you need or not.
> 
> 
> > So which would be better? XPath or linear traversing?
> > I dont know much about XPath implementation. (Do they not traverse
> > atleast once?) The file size is about 500 KB. :)
> 
> That sounds rather small. Just parse it in and walk through it, that's what
> I'd do.
> 
Really! I thought 500 Kb is bigger. How much it would be able to handle?
At what size I should go for XPath ? 

thanks for your all help,
 -"kalyan"


_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to