Jano Svitok
5/22/2008 3:49:00 PM
On Thu, May 22, 2008 at 1:08 PM, dare ruby <martin@angleritech.com> wrote:
> Dear Friends,
>
> i need to implement xpath in my parser class. I have implemented a new
> parser which parses xml document. I have used token types to parse xml
> like,
>
> while parser.next
>
> if parser.token_type == tag_start
> parser.tag
> end
>
> if parser.token_type == tag_end
> parser.tag_end
> end
> end
>
> so a token_type method returns token types like tag_start, tag_end,
> comment, pi etc and tag method returns the tag start and tag_end method
> returns the tag end of an xml document.
>
> now i need to implement xpath in my parser class. I need to navigate the
> xml document using xpath like,
>
> while parser.next!
>
> parser.path( 'book/book-name' ) do
>
> end
>
> end
>
> could anyone help me with some solution to implement xpath in my parser
> class.I don't want to use REXML or HPRICOT. i want to create my own
> methods which does the above.
I'm not sure about your interface, anyway:
You probably need to keep info about the current path from the root
(stack is usually handy for this), and
have an xpath parser that says yes/no for an xpath expression and current path.
then you yield the current node.